Schauen wir uns an, wie Sie ein KOSTENLOSES SSL / TLS-Zertifikat von ZeroSSL erhalten und auf Apache- und Nginx-Webservern implementieren.
Introduction
Möglicherweise haben Sie viel über den Begriff HTTP und HTTPS gehört. In den frühen Tagen wurde ein Protokoll definiert, das als benannt wurde HyperText Transfer Protocol (HTTP). Es ist eine Möglichkeit, vom Browser zum Webserver zu kommunizieren. Wenn diese Kommunikation stattfindet, werden die Daten, die über ein HTTP-Protokoll übertragen werden, nur im Klartextformat übertragen. Aus diesem Grund wurde festgestellt, dass die HTTP-Kommunikation nicht sicher ist und Hacker die wichtigen und sensiblen Nachrichten angreifen und abfangen konnten.
Um dieses Problem zu lösen, muss die HTTPS Protokoll kam ins Bild. Es ist ein sicheres Protokoll und Akronym steht für HyperText Transfer Protocol Sicher. Es verschlüsselt einfach die Daten, wenn die Kommunikation stattfindet und die Daten von der Datenquelle übertragen werden Web-Browser zum Webserver. Wenn also ein Hacker diese Informationen aufnimmt, werden sie alle verschlüsselt.
How do HTTPS works?
Das HTTPS-Protokoll funktioniert mit beiden Dingen: SSL (Secure Socket Layer) oder TLS (Transport Layer Security). Beide Tools verwenden PKI (Public Key Infrastructure). PKI verwendet wiederum zwei Schlüssel, dh. öffentliche und private Schlüssel. Alles, was mit dem öffentlichen Schlüssel verschlüsselt wird, kann mit dem privaten Schlüssel entschlüsselt werden und umgekehrt.
Wenn wir eine installieren SSL / TLS-Zertifikat auf unserer Website die 'Datenverschlüsselung'Funktion wird aktiviert. SSL wird als Kontrollpunkt verwendet, um die Sicherheit der Daten zu gewährleisten, die über das Internet zwischen dem Browser des Benutzers und dem Website-Server ausgetauscht werden.
Getting ZeroSSL certificate
ZeroSSL ist eine Zertifizierungsstelle (CA), die es jedem sehr einfach macht, ein Zertifikat zu installieren, um die Website sicher zu machen. Sie können bis zu 3 Zertifikate mit einer Gültigkeit von 90 Tagen kostenlos erhalten.
- Melden Sie sich bei ZeroSSL an
- Nach dem Anmelden wird die folgende Seite angezeigt. Klicke auf 'Neues Zertifikat. '
- Geben Sie die URL ein, die Sie sichern möchten, und klicken Sie auf 'Nächster Schritt.'
- Wählen Sie 90-Tage-Zertifikat und Weiter
- Fahren wir mit der Option zum automatischen Generieren von CSR fort
- Fahren Sie mit dem "kostenlosen" Plan fort
Als Nächstes müssen Sie den Domänenbesitz überprüfen. Es gibt einige Optionen.
- DNS - wenn Sie einen DNS-Eintrag hinzufügen können
- E-Mail - Wenn Sie die E-Mail an admin@IhreDomain.com erhalten können
- Datei-Upload - Wenn Sie eine Datei im Stammverzeichnis der Domäne hochladen können
Wählen Sie, was für Sie funktioniert. Ich werde mit dem DNS-Eintrag fortfahren.
- Ich habe den CNAME hinzugefügt und bin bereit, die Domain zu überprüfen.
- Nach der Überprüfung kann das SSL-Zertifikat heruntergeladen werden.
Hier sind meine heruntergeladenen Zertifikate.
Es ist Zeit, es umzusetzen.
Implementing on Apache
Im Folgenden werde ich Apache unter Ubuntu installieren.
Melden Sie sich beim Server an und installieren Sie mit apt-get
Befehl.
sudo apt-get install apache2
Lassen Sie uns herausfinden, ob Apache mit ausgeführt wird systemctl Befehl.
root@geekflare-lab:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Sat 2020-05-23 16:15:56 UTC; 3s ago
Process: 7852 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
Process: 14179 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 14196 (apache2)
Tasks: 55 (limit: 2362)
CGroup: /system.slice/apache2.service
├─14196 /usr/sbin/apache2 -k start
├─14199 /usr/sbin/apache2 -k start
└─14200 /usr/sbin/apache2 -k start
May 23 16:15:56 geekflare-lab systemd[1]: Starting The Apache HTTP Server...
May 23 16:15:56 geekflare-lab apachectl[14179]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'Serve
May 23 16:15:56 geekflare-lab systemd[1]: Started The Apache HTTP Server.
Großartig, es läuft.
Meine Domain (lab.geekflare.com) zeigt bereits auf diesen Apache-Server.
Wie Sie sehen, ist es jedoch nicht gesichert. Daher konfigurieren wir das Zertifikat, das wir von ZeroSSL erhalten haben.
- Erstellen wir ein Verzeichnis mit dem Namen
sslCA
unter / etc, um die Zertifikatdateien zu speichern.
cd /etc
mkdir sslCA
- Übertragen Sie die Dateien in den neu erstellten Ordner auf dem Server
root@geekflare-lab:/etc/sslCA# ll
total 20
drwxr-xr-x 2 root root 4096 May 18 12:13 ./
drwxr-xr-x 92 root root 4096 May 22 06:07 ../
-rw-r--r-- 1 root root 2430 May 18 05:37 ca_bundle.crt
-rw-r--r-- 1 root root 2292 May 18 05:37 certificate.crt
-rw-r--r-- 1 root root 1702 May 18 05:37 private.key
- Aktivieren Sie das SSL-Modul
sudo a2enmod SSL
- Wir müssen den Webserver neu starten, damit die Änderungen erkannt werden können.
sudo service apache2 restart
- Der nächste Schritt besteht darin, die Zertifikatdateien in der Apache SSL-Konfigurationsdatei zu konfigurieren.
cd /etc/apache2/mods-available
- Der Name der Datei lautet ssl.conf. Wir müssen Folgendes hinzufügen
<VirtualHost
Richtlinie.
<VirtualHost _default_:443> SSLEngine on SSLCertificateFile /etc/SSLCA/certificate.crt SSLCertificateKeyFile /etc/SSLCA/private.key SSLCertificateChainFile /etc/SSLCA/ca_bundle.crt
</VirtualHost>
- Speichern Sie die Datei und beenden Sie sie
:wq!
Nach dem Neustart wird das SSL auf der Site aktiviert. Lassen Sie uns über https: // auf die Site zugreifen
Und wie Sie sehen können,Verbindung ist sicher ”. Dies bedeutet, dass unser SSL-Zertifikat erfolgreich auf unseren Webserver angewendet wurde.
Implementing on Nginx
Nginx befindet sich in den Standard-Repositorys von Ubuntu, sodass es von hier aus mit dem entsprechenden Verpackungssystem installiert werden kann.
- Der folgende Befehl wird zum Installieren des “Nginx".
sudo apt install nginx
- Nachdem die Installation erfolgreich war, können wir Nginx mit dem folgenden Befehl starten.
systemctl start nginx
- Überprüfen Sie den Status von Nginx.
root@geekflare-lab:~# systemctl status nginx ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-05-19 06:54:00 UTC; 4 days ago Docs: man:nginx(8) Process: 8634 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS) Process: 8661 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 8653 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 8664 (nginx) Tasks: 2 (limit: 2362) CGroup: /system.slice/nginx.service ├─8664 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─8707 nginx: worker process May 19 06:54:00 geekflare-lab systemd[1]: Starting A high performance web server and a reverse proxy server... May 19 06:54:00 geekflare-lab systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument May 19 06:54:00 geekflare-lab systemd[1]: Started A high performance web server and a reverse proxy server.
- Wie erwartet zeigt der Browser die Warnung an, da eine Verbindung zu dieser Site nicht sicher ist.
Lassen Sie uns das Zertifikat schnell implementieren, um die Site mithilfe von HTTPS sicher zu machen.
- Lassen Sie uns erstellen
example.com.conf
Datei bei/etc/nginx/conf.d
Ort. Der Dateiinhalt sieht wie folgt aus.
server {
listen 443 SSL default_server;
listen [::]:443 SSL default_server ;
server_name lab.geekflare.com lab.geekflare.com;
root /var/www/html;
}
- Jetzt muss ein Zertifikatsdateiname hinzugefügt werden
nginx.conf
Datei, die sich in “/etc/nginx
" Verzeichnis. - Fügen Sie Folgendes in die http-Direktive ein
ssl_certificate /etc/sslCA/certificate.crt;
ssl_certificate_key /etc/sslCA/private.key;
- Starten Sie Nginx neu, um die Änderungen zu überprüfen
systemctl restart nginx
Und los geht's.
Möchten Sie Nginx lernen? Schau dir das an Grundkurs.
Testing SSL/TLS Configuration
Die Standardkonfiguration ist möglicherweise anfällig, und ich empfehle dringend Testen Sie Ihre Website nach der Implementierung des Zertifikats. Es gibt eine Reihe von Online-Tools können Sie hier überprüfen.
Fazit
Ich hoffe, dies gibt Ihnen eine Idee, ein Zertifikat von ZeroSSL zu erhalten und es auf zwei der beliebtesten Webserver zu implementieren.