So installieren wir das SSL -Zertifikat, um Apache auf RHEL/Centos 7/6 zu sichern, um Apache zu sichern
- 1379
- 352
- Henry Liebold
Erweitern Sie das letzte Tutorial für Let's Encrypt in Bezug Lassen Sie uns die Zertifikatsbehörde verschlüsseln für Apache Webserver auf Centos/Rhel 7/6 und auch Fedora -Verteilungen.
Wenn Sie installieren möchten, lassen Sie uns für Apache auf Debian und Ubuntu verschlüsseln, folgen Sie dieser Anleitung unten:
Setup lass uns verschlüsseln, um Apache auf Debian und Ubuntu zu sichern
Probenumgebung testen
Installieren Sie Lets Verschlüsseln für Apache auf CentOS und RHELAnforderungen
- Ein registrierter Domain -Name mit gültig
A
Aufzeichnungen, die auf Ihre öffentliche IP -Adresse Ihrer Server zurückkehren. - Apache -Server, das mit aktivierter SSL -Modul installiert ist, und virtuelles Hosting, falls Sie mehrere Domänen oder Subdomains hosten.
Schritt 1: Installieren Sie den Apache -Webserver
1. Wenn nicht bereits installiert, kann der HTTPD -Daemon durch Ausgabe des folgenden Befehls installiert werden:
# yum install httpd
2. Damit sich die Software verschlüsseln kann, um mit Apache zu arbeiten, stellen Sie sicher, dass das SSL/TLS -Modul durch Ausgabe des folgenden Befehls installiert ist:
# yum -y install mod_ssl
3. Starten Sie den Apache -Server mit dem folgenden Befehl:
# Systemctl Start HTTPD.Service [zu RHEL/Centos 7] # Service HTTPD START [zu RHEL/Centos 6]
Schritt 2: Installieren Sie lasst das SSL -Zertifikat verschlüsseln
4. Die einfachste Installationsmethode Lassen Sie uns verschlüsseln Client wird durch Klonen von Github -Repository in Ihrem Dateisystem klonen. Um GIT in Ihrem System zu installieren, müssen Sie Epel -Repositories mit dem folgenden Befehl aktivieren.
# yum install epel-release
5. Sobald EPEL -Repos in Ihr System hinzugefügt wurden, installieren Sie den Git -Client, indem Sie den folgenden Befehl ausführen:
# Yum Installieren Sie Git
6. Sobald Sie alle erforderlichen Abhängigkeiten installiert haben, um mit Let's Encrypt umzugehen, gehen Sie zu /usr/local/
Verzeichnis und beginnen Sie mit dem folgenden Befehl das offizielle Github -Repository mit dem Let's Encrypt -Client zu ziehen:
# CD/usr/local/ # Git Clone https: // github.com/letSencrypt/letSencrypt
Schritt 3: Erhalten Sie ein kostenloses, lasst uns das SSL -Zertifikat für Apache verschlüsseln
7. Der Prozess des Erhaltens eines kostenlosen Let's Encrypt -Zertifikats für Apache ist automatisiert für CentOS/Rhel Vielen Dank an das Apache -Plugin.
Lass uns rennen Lassen Sie uns verschlüsseln Skriptbefehl, um ein SSL -Zertifikat zu erhalten. Gehen Sie zu Let Los Let Let Let Let Let Let Let Los Verschlüsseln Sie das Installationsverzeichnis von /usr/local/letSencrypt
und leiten Sie die letSencrypt-auto
Befehl durch Bereitstellung --Apache
Option und die -D
Fahnen Sie für jedes Subdomain, Sie benötigen ein Zertifikat.
# CD/usr/local/letSencrypt # ./letSencrypt -auto --apache -d your_domain.tldCreate lasst das Verschlüsselung von SSL -Zertifikat für Apache verschlüsseln
8. Geben Sie die E -Mail -Adresse an, die von Let's Encrypt verwendet wird, um Ihre verlorene Taste wiederherzustellen, oder für dringende Mitteilungen und drücken Sie sie Eingeben weitermachen.
Fügen Sie eine E -Mail -Adresse für Lets Encrypt hinzu9. Stimmen Sie den Bedingungen der Lizenz zu, indem Sie die Eingabetaste treffen.
Vereinbaren Sie die Verschlüsselung der Lizenz10. An CentOS/Rhel, Standardmäßig verwendet Apache Server das Konzept der Trennung von Verzeichnissen für aktivierte Hosts von verfügbaren (inaktiven) Hosts als Debian basierte Verteilung do.
Außerdem ist das virtuelle Hosting standardmäßig deaktiviert. Die Apache -Anweisung, die den Namen des Servers angibt (Servername) Es ist nicht in der SSL -Konfigurationsdatei vorhanden.
Um diese Richtlinie zu aktivieren, fordert Sie Verschlüsseln auf, einen virtuellen Host auszuwählen. Wählen Sie die aus, da es keine Vhost verfügbar ist SSL.Conf
Datei, die automatisch durch den Let's Encrypt Client geändert werden soll und drücken Eingeben weitermachen.
11. Wählen Sie als nächstes die aus Einfach Methode für Http Anfragen und drücken Sie Eingeben sich vorwärts bewegen.
Ermöglichen Sie einfache HTTP -Anfragen12. Wenn alles reibungslos verlief, sollte auf dem Bildschirm eine Glückwunschmeldung angezeigt werden. Drücken Sie Eingeben um die Eingabeaufforderung zu veröffentlichen.
Lassen Sie uns aktiviert auf Domain aktivierenDas ist es! Sie haben erfolgreich a herausgegeben SSL/TLS Zertifikat für Ihre Domain. Jetzt können Sie mit dem Durchsuchen Ihrer Website mit dem Durchsuchen der Website verwenden Https Protokoll.
Schritt 4: Testen Sie freien Verschlüsselungsverschlüsselung auf der Domäne
13. Um die Geradheit Ihrer Domain SSL/TLS -Handshake zu testen, besuchen Sie den folgenden Link und testen Sie Ihr Zertifikat auf Ihrer Domain.
https: // www.SSlllabs.com/ssltest/analysieren.htmlÜberprüfen
14. Wenn Sie eine Reihe von Berichten über Ihre Domain -Verwundbarkeit in den durchgeführten Tests erhalten, müssen Sie diese Sicherheitslöcher dringend beheben.
Eine Gesamtbewertung von C Die Klasse macht Ihre Domain sehr unsicher. Um diese Sicherheitsprobleme zu beheben, öffnen Sie Apache SSL -Konfigurationsdatei und vornehmen Sie folgende Änderungen:
# vi/etc/httpd/conf.D/SSL.Conf
Suchen nach einer Linie mit SSLProtocol
Aussage und hinzufügen -SSLV3
am Ende der Linie.
Gehen Sie tiefer in die Datei, suchen Sie und kommentieren Sie die Linie mit SSLCIPHERSUITE
durch platzieren a #
Vorher und fügen Sie den folgenden Inhalt unter dieser Zeile hinzu:
SSLCIPHERSUITE ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES256-GCM-SHA384: DHE-RASA-AES128-ASA256: DHE-RASA-AES128-AES1284 :DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA -Aes256-sha384: ecdhe-ecdsa-aes256-sha384: ecdhe-rsa-aes256-sha: ecdhe-ECDSA-AES256-Sha: Dhe-RSA-AES128-SHA256: DHE-RSA-AES128-SHA: DHE-AES-AES128 -SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA : AES256-Sha: AES: Camellia: DES-CBC3-Sha:!Anull:!Enull:!EXPORT:!Des:!RC4:!MD5:!PSK:!AECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SSLHONORCIPHERORDER auf SSLOPTIONS +STRICTERIREKonfigurieren Sie die SSL -Konfiguration
15. Nachdem Sie alle oben genannten Änderungen vorgenommen haben, speichern und schließen Sie die Datei und starten Sie den Apache -Daemon neu, um Änderungen anzuwenden.
# Systemctl Neustart HTTPD neu starten.Service [zu RHEL/Centos 7] # Service HTTPD Neustart [zu RHEL/Centos 6]
16. Testen Sie nun den Status Ihrer Domänenverschlüsselung erneut, indem Sie denselben Link wie oben besuchen. Um den Wiederholungstest durchzuführen, klicken Sie auf den Link Clear Cache von der Website.
https: // www.SSlllabs.com/ssltest/analysieren.htmlDurch Test können Sie das SSL -Zertifikat auf der Website verschlüsseln
Jetzt solltest du eine Klasse bekommen A Gesamtbewertung, was bedeutet, dass Ihre Domain sehr gesichert ist.
Schritt 4: Auto Renew Recrypt Wecrypt Zertifikate auf Apache
17. Diese Beta -Version von Let's Encrypt Software veröffentlicht Zertifikate mit Ablaufdatum danach 90 Tage. Um das SSL -Zertifikat zu erneuern, müssen Sie das ausführen letSencrypt-auto
Befehl vor dem Ablaufdatum erneut mit den gleichen Optionen und Flaggen, die zum Erhalten des Anfangszertifikats verwendet werden.
Ein Beispiel, wie das Zertifikat manuell erneuert werden soll.
# CD/usr/local/letSencrypt # ./letSencrypt-auto certonly --apache-renew-by-Default -d Your_domain.tld
18. Um diesen Prozess zu automatisieren, erstellen Sie das folgende Bash -Skript, das Github Erikaheidi, in /usr/local/bin/
Verzeichnis mit dem folgenden Inhalt. (Das Skript ist leicht geändert, um unser Installationsverzeichnis von LetSencrypt widerzuspiegeln.).
# vi/usr/local/bin/le-renew-centos
Fügen Sie den folgenden Inhalt hinzu zu le-renew-centos
Datei:
!/bin/bash domain = $ 1 le_path = "/usr/local/letSencrypt" le_conf = "/etc/letsencrypt" exp_limit = 30; get_domain_list () certdomain = $ 1 config_file = "$ le_conf/renewal/$ certdomain.conf "wenn [ ! -f $ config_file]; Dann wurde "[Fehler] die Konfigurationsdatei für das Zertifikat $ certdomain nicht gefunden."Exit 1; FI Domains = $ (GREP-nur matching --perl-regex" (?<=domains \= ).*" "$config_file") last_char=$(echo "$domains" | awk 'print substr($0,length,1)') if [ "$last_char" = "," ]; then domains=$(echo "$domains" |awk 'print substr($0, 1, length-1)') fi echo $domains; if [ -z "$domain" ] ; then echo "[ERROR] you must provide the domain name for the certificate renewal." exit 1; fi cert_file="/etc/letsencrypt/live/$domain/fullchain.pem" if [ ! -f $cert_file ]; then echo "[ERROR] certificate file not found for domain $domain." exit 1; fi exp=$(date -d "'openssl x509 -in $cert_file -text -noout|grep "Not After"|cut -c 25-'" +%s) datenow=$(date -d "now" +%s) days_exp=$(echo \( $exp - $datenow \) / 86400 |bc) echo "Checking expiration date for $domain… " if [ "$days_exp" -gt "$exp_limit" ] ; then echo "The certificate is up to date, no need for renewal ($days_exp days left)." exit 0; else echo "The certificate for $domain is about to expire soon. Starting renewal request… " domain_list=$( get_domain_list $domain ) "$le_path"/letsencrypt-auto certonly --apache --renew-by-default --domains "$domain_list" echo "Restarting Apache… " /usr/bin/systemctl restart httpd echo "Renewal process finished for domain $domain" exit 0; fi
19. Ausführungsberechtigungen für das Skript gewähren, installieren BC Packen Sie das Skript aus und führen Sie es aus, um es zu testen. Verwenden Sie Ihren Domänennamen als Positionsparameter für das Skript. Geben Sie die folgenden Befehle aus, um diesen Schritt zu erreichen:
# yum install bc # chmod +x/usr/local/bin/le-renew-centos #/usr/local/bin/le-renew-centos your_domain.tld
20. Fügen Sie schließlich mit der Linux -Planung einen neuen Cron -Job hinzu, um das Skript alle zwei Monate auszuführen, und versichert, dass Ihr Zertifikat vor dem Ablaufdatum aktualisiert wird.
# Crontab -e
Fügen Sie die folgende Zeile am Ende der Datei hinzu.
0 1 1 */2 */usr/local/bin/le-renew-centos your_domain.TLD >>/var/log/your_domain.tld-renew.Protokoll 2> & 1
Das ist es! Ihr Apache -Server läuft oben auf CentOS/Rhel System serviert jetzt SSL -Inhalte mit einem kostenlosen Let Let Let's Encrypt SSL -Zertifikat.
- « 5 am häufigsten verwendete Open -Source -Shells für Linux
- SARG - Tintenfischanalyse -Bericht Generator und Internet -Bandbreitenüberwachungstool »