Owncloud Image + Let's Encrypt

  • Guten Abend,


    ich habe soeben Debian Jessie mit OwnCloud installiert und möchte OwnCloud nun gerne via SSL ein wenig sicherer machen. Meine Frage ist nun, wie ich mit Let's Encrypt ein Zertifikat erstellen kann und diese in den Webserver (OwnCloud) einbinde.



    Beste Grüße

  • Es gibt mehrere Methoden.So lädst du den Letsencrypt Client selber runter und lässt ihn automatisch ein Zertifikat für domain.de ausstellen und im Apachen konfigurieren:

    Code
    1. cd ~
    2. git clone https://github.com/letsencrypt/letsencrypt
    3. cd letsencrypt
    4. ./letsencrypt-auto --help
    5. ./letsencrypt-auto --apache --domain domain.de,www.domain.de


    (Aktivieren der Konfiguration mit 'le' und 'ssl', bei mir ist es die Nummer 3 und heißt '000-default-le-ssl.conf')


    Alternativ (zumindest bei Ubuntu) kannst du letsencrypt auch über die Paketquellen deiner Distribution installieren, und das Zertifikat manuell erstellen lassen:

    Code
    1. apt-get install letsencrypt
    2. letsencrypt certonly --webroot -w /var/www/html -d domain.de -d www.domain.de -n -m root@domain.de --agree-tos


    (Das Webroot muss letsencrypt wissen, weil es hier eine Directory '.well-known' anlegt, und dort eine Datei hinterlegt um zu prüfen ob der Server wirklich die Domain besitzt.
    Die Datei wird danach gelöscht, die Directory '.well-known' nicht. Ist aber leer, also stört nicht!)


    - Das Zertifikat steht nun hier:

    Code
    1. /etc/letsencrypt/live/domain.de/


    - Und zwar sind es die Dateien:

    Code
    1. cert.pem: Das Server-Zertifikat welches der Apache ausliefert
    2. privkey.pem: Der Geheime Key für das Server-Zertifikat
    3. chain.pem: Alle Zwischen-Zertifikate zwischen 'cert.pem' und dem Root-Zertifikat, cert.pem nicht mit drin!
    4. fullchain.pem: Alle Zwischen-Zertifikate zwischen 'cert.pem' und dem Root-Zertifikat, cert.pem mit drin!


    - Wenn man dem Apachen also die Datei 'fullchain.pem' als Zertifikat und 'privkey.pem' als Key einträgt müsste alles gehen.
    Also in die Apachen-Config '/etc/apache2/sites-available/default-ssl.conf' und eintragen:

    Code
    1. SSLCertificateFile /etc/letsencrypt/live/domain.de/fullchain.pem
    2. SSLCertificateKeyFile /etc/letsencrypt/live/domain.de/privkey.pem


    - Und den Apachen reloaden:

    Code
    1. systemctl reload apache2


    - Das Zertifikat gilt 3 Monate, renew geht so:

    Code
    1. letsencrypt renew -m root@domain.de --agree-tos


    (Es wird versucht alle Letsencrypt Zertifikate zu erneuern.
    Wenn das Zertifikat noch genug Tage übrig hat wird es nicht renewed, wenn es renewed wurde sind die Dateien unter '/etc/letsencrypt/live/domain.de/' neu!)


    - Und den Apachen danach reloaden:

    Code
    1. systemctl reload apache2


    Sonst noch Fragen?


    Wenn du nicht klarkommst und dein System als Image von netcup verfügbar ist kann ichs auch kurz installieren und dich durch die Schritte bis zum Zertifikat führen.


    Das erneuern des Zertifikates solltest du per Cronjob machen - sind ja nur zwei Befehle ('letsencrypt --renew' und 'apache2 reload')


    Thomas

  • Es gibt mehrere Methoden.So lädst du den Letsencrypt Client selber runter und lässt ihn automatisch ein Zertifikat für domain.de ausstellen und im Apachen konfigurieren:


    [...]


    Das Problem ist, das ich OwnCloud mit der ServerIP aufrufe. Ich habe nur eine Domain bei einem anderen Hoster welche ich dafür nehmen könnte, diese hat jedoch schon ein Zertifikat von Let's Encrypt.

  • Ich gehe davon aus, dass du die Instanz nur für dich nutzt. Also kannst doch einfach auch ein eigenes Zertifikat nehmen.


    (Ich nehme das an, weil es wenig Sinn ergibt eine "public" Cloud nur via IP zu betreiben)


    Mir wäre es sogar lieber, wenn ich meinen privaten Dienst mit eigenen Mittel verschlüssele. Da war doch mal was ...