1. Einleitung Lassen Sie Ihre Website immer noch ungeschützt im Internet? Hier erstellen wir eine kostenlose Version von HTTPS. Kostenlos, kostenlos, kostenlos. Ich sage es dreimal, weil es wichtig ist. Das Hypertext Transfer Protocol (HTTP) wird zum Übertragen von Informationen zwischen einem Webbrowser und einem Website-Server verwendet. Das HTTP-Protokoll sendet Inhalte im Klartext und bietet keinerlei Form der Datenverschlüsselung. Wenn ein Angreifer die Übertragungsnachricht zwischen einem Webbrowser und einem Website-Server abfängt, kann er die darin enthaltenen Informationen direkt lesen. Daher ist das HTTP-Protokoll nicht für die Übertragung einiger vertraulicher Informationen wie Kreditkartennummern, Passwörter und anderer Zahlungsinformationen geeignet. Um diesen Mangel des HTTP-Protokolls zu beheben, wird ein anderes Protokoll benötigt: Secure Sockets Layer Hypertext Transfer Protocol HTTPS. Zur Sicherheit der Datenübertragung ergänzt HTTPS das SSL-Protokoll auf der Basis von HTTP. SSL verwendet Zertifikate zur Überprüfung der Identität des Servers und verschlüsselt die Kommunikation zwischen Browser und Server. 2. Vorteile von HTTPS Obwohl HTTPS nicht absolut sicher ist, können Organisationen, die Stammzertifikate und Verschlüsselungsalgorithmen kontrollieren, auch Man-in-the-Middle-Angriffe durchführen. HTTPS ist jedoch unter der aktuellen Architektur immer noch die sicherste Lösung und bietet die folgenden Hauptvorteile: (1) Durch die Verwendung des HTTPS-Protokolls können Benutzer und Server authentifiziert werden, wodurch sichergestellt wird, dass Daten an den richtigen Client und Server gesendet werden; (2) Das HTTPS-Protokoll ist ein Netzwerkprotokoll, das auf dem SSL+HTTP-Protokoll basiert und verschlüsselte Übertragungen und Identitätsauthentifizierungen durchführen kann. Es ist sicherer als das http-Protokoll und kann verhindern, dass Daten während der Übertragung gestohlen oder geändert werden, wodurch die Integrität der Daten gewährleistet wird. (3) HTTPS stellt unter der aktuellen Architektur die sicherste Lösung dar. Obwohl es nicht absolut sicher ist, erhöht es die Kosten von Man-in-the-Middle-Angriffen erheblich. (4) Google hat im August 2014 seinen Suchmaschinenalgorithmus angepasst und erklärt, dass „Websites, die HTTPS-Verschlüsselung verwenden, in den Suchergebnissen höher eingestuft werden als entsprechende HTTP-Websites.“ 3. Nachteile von HTTPS Obwohl HTTPS große Vorteile bietet, weist es dennoch einige Nachteile auf: (1) Die Handshake-Phase des HTTPS-Protokolls ist zeitaufwändig, was die Seitenladezeit um fast 50 % verlängert und den Stromverbrauch um 10 bis 20 % erhöht. (2) Das Zwischenspeichern von HTTPS-Verbindungen ist nicht so effizient wie das von HTTP, was den Datenaufwand und den Stromverbrauch erhöht und sogar bestehende Sicherheitsmaßnahmen beeinträchtigt. (3) SSL-Zertifikate sind kostenpflichtig. Je leistungsfähiger das Zertifikat, desto höher ist die Gebühr. Private Websites oder kleine Websites müssen sie im Allgemeinen nicht verwenden. (4) SSL-Zertifikate müssen normalerweise an eine IP-Adresse gebunden sein. Mehrere Domänennamen können nicht an dieselbe IP-Adresse gebunden sein. IPv4-Ressourcen können diese Nutzung nicht unterstützen. (5) Der Verschlüsselungsumfang des HTTPS-Protokolls ist ebenfalls relativ begrenzt und hat nahezu keine Auswirkungen auf Hackerangriffe, Denial-of-Service-Angriffe, Server-Hijacking usw. Das Wichtigste dabei ist, dass das Kreditkettensystem von SSL-Zertifikaten nicht sicher ist. Insbesondere wenn einige Länder die Stammzertifikate der Zertifizierungsstelle kontrollieren, sind Man-in-the-Middle-Angriffe weiterhin möglich. 4. Laden Sie certbot herunter Verwenden Sie git zum Herunterladen hier. Wenn Sie git noch nicht installiert haben, lesen Sie, wie es installiert wird Verzeichnis ändern cd /usr/local Klonen Sie das Git-Repository Git-Klon https://github.com/certbot/certbot.git Nach Abschluss des Klonens wird das Verzeichnis certbot in /usr/loca/ angezeigt. 5. Certbot anzeigen Wechseln Sie in das Verzeichnis certbot cd /usr/local/certbot Wenn das Verzeichnis so aussieht, war die Installation erfolgreich. Allgemeine Befehle von certbot Offizielle Dokumentation anzeigen 6. Installieren Sie nginx Siehe das Installationsdokument von nginx 7. Beantragen Sie ein https-Zertifikat Aktuelle Zertifikate anzeigen ./certbot-auto-Zertifikate Bei der ersten Ausführung werden einige Abhängigkeiten installiert. Nach der Hälfte des Vorgangs wird eine Bestätigungsaufforderung angezeigt. Geben Sie Y ein. Beginnen Sie mit der Beantragung eines Zertifikats (das Zertifikat ist 3 Monate gültig und muss nach Ablauf erneut beantragt werden). Methode 1: Verwenden Sie die DNS-Verifizierung. Diese Methode erfordert, dass Sie den Domänennamen konfigurieren können. Mir persönlich gefällt diese Methode./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d Ihr Domänenname --manual --preferred-challenges dns-01 certonly Beispiel: Konfigurieren von Platzhalterdomänennamen Kopieren Sie den Code wie folgt: ./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d *.nl166.com --manual --preferred-challenges dns-01 certonly Konfigurieren eines bestimmten Domänennamens Kopieren Sie den Code wie folgt: ./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d api.nl166.com --manual --preferred-challenges dns-01 certonly Konfigurieren eines sekundären Platzhalterdomänennamens Kopieren Sie den Code wie folgt: ./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d *.api.nl166.com --manual --preferred-challenges dns-01 certonly Wie im Bild oben zu sehen, werden Sie beim ersten Mal aufgefordert, eine E-Mail-Adresse einzugeben. Geben Sie diese einfach wie erforderlich ein. Anschließend wird Ihnen eine E-Mail zugesandt und Sie müssen Ihre E-Mail-Adresse mit einem Klick bestätigen. Geben Sie also unbedingt die echte E-Mail-Adresse ein und bestätigen Sie diese anschließend wie erforderlich. Wenn Sie nicht bestätigen, können Sie nicht fortfahren. Als Nächstes werden Sie aufgefordert, den Domänennamen zu bestätigen und bei Bedarf einen TXT-Eintrag aufzulösen. Speichern und bestätigen, dann zur Bestätigung zum Server zurückkehren Die beiden oben genannten Dateien sind die Zertifikate, die zur Konfiguration von https verwendet werden Methode 2: Verwenden von Plugins Schauen wir uns zunächst an, was der Beamte gesagt hat Hier verwende ich nginx (es wird nginx nach der Anwendung automatisch neu gestartet). Diese Methode kann keine Platzhalterdomänennamen konfigurieren, Sie können sie nur einzeln hinzufügen ./certbot-auto --nginx -d api2.nl166.com Um den obigen Fehler zu beheben, beachten Sie bitte, dass /usr/local/nginx durch den tatsächlichen Installationsort Ihres nginx ersetzt werden sollte, um LNMP zu installieren ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx ln -s /usr/local/nginx/conf/ /etc/nginx Führen Sie die Anwendung erneut aus Sie werden gefragt, ob der HTTP-Verkehr auf HTTPS umgeleitet und der HTTP-Zugriff gelöscht werden soll. Sie können entsprechend Ihren Anforderungen auswählen. Ich breche die Auswahl hier ab (tatsächlich kann dieser Schritt direkt ignoriert werden. Nach dem Testen kann auf die URL https zugegriffen werden, bevor dieser Schritt ausgewählt wird.) Wenn Sie den Abfrageschritt überspringen möchten, können Sie certonly hinzufügen. Diese Methode generiert nur ein Zertifikat, ohne andere Vorgänge auszuführen. Die Zertifikatskonfiguration muss wie folgt manuell hinzugefügt werden: ./certbot-auto certonly --nginx -d api2.nl166.com Wie in der obigen Abbildung gezeigt, findet ein Server, der Port 443 abhört, automatisch die Konfigurationsdatei für den entsprechenden Domänennamen und fügt die folgenden zwei Zeilen hinzu. Dadurch wird auch mein Format durcheinandergebracht, und die Einrückung der }-Nummer entspricht nicht der Einrückung des { oben, aber dies hat keinen Einfluss auf die Funktion. Ich weiß nicht, ob je nach Version von Nginx SSL hinzugefügt wird. Da meine Version von Nginx dies nicht erfordert, muss bei niedrigeren Versionen SSL hinzugefügt werden, um den HTTPS-Zugriff zu ermöglichen. Wenn der Port 443 des Domänennamens nicht überwacht wird, werden die Informationen an folgender Stelle hinzugefügt Bitte erkunden Sie selbst andere Methoden 8. Konfigurieren Sie nginx zur Unterstützung von https # HTTPS-Server # Server { hören Sie 443 SSL; Servername api2.nl166.com; Stammverzeichnis /data/web/im.nl166.com; Standort / { Indexierung index.php; } #auth_basic "Hallo Welt"; #auth_basic_user_file /usr/local/nginx/conf/auth/nl166.auth; Standort ~ \.php$ { fastcgi_params einschließen; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $Dokumentstammsatz$fastcgi_script_name; } Standort ~ .*.(svn|git|cvs) { alles leugnen; } ssl_certificate /etc/letsencrypt/live/api2.nl166.com/fullchain.pem; # verwaltet von Certbot ssl_certificate_key /etc/letsencrypt/live/api2.nl166.com/privkey.pem; # verwaltet von Certbot } Bei früheren Versionen müssen Sie SSL hinzufügen, um den https-Zugriff zu aktivieren. 9. Verwenden Sie Shell-Skripte und geplante Aufgaben, um Zertifikate regelmäßig zu erneuern Hinweis: Um die Begrenzung der Anzahl der Vorgänge zu umgehen, fügen Sie den Parameter --dry-run hinzu. Nachdem die Ausführung korrekt war, entfernen Sie ihn und führen Sie den eigentlichen Erneuerungsvorgang aus. Erneuerung nach Methode 1 Der Domänenname lautet ****.conf im Verzeichnis /etc/letsencrypt/renewal/. **** ist der Domänenname, den Sie eingeben möchten. Als ich ihn beispielsweise generiert habe, war er *.nl166.com, aber als er tatsächlich generiert wurde, war kein * vorhanden. /home/certbot-sh/au.sh Ersetzen Sie es durch Ihr eigenes Skript zum Aktualisieren von DNS wie folgt: Kopieren Sie den Code wie folgt: ./certbot-auto erneuern --cert-name nl166.com --manual-auth-hook /data/shell/crontab/auto_update_httpscert.sh --dry-run Den Update-Befehl schreibst du in eine Datei. Ich habe sie in /data/shell/crontab/auto_update_httpscert.sh abgelegt. Der Inhalt ist wie folgt. Die ursprüngliche auto_update_httpscert.sh wird in /data/shell/cnl_update_httpscert.sh geändert. Geplante Systemaufgaben hinzufügen crontab -e #Aktualisieren Sie das https-Zertifikat jeden Sonntag um 5:00 Uhr 0 5 * * 0 sh /data/shell/crontab/auto_update_httpscert.sh Das Erneuerungsverfahren für Methode 2 ist wie folgt: ./certbot-auto certonly --renew-by-default --nginx -d api2.nl166.com --dry-run Referenzmethode 1 zum Hinzufügen von geplanten Systemaufgabenvorgängen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Detailliertes Beispiel zum Abrufen des Maximalwerts jeder Gruppe nach der Gruppierung in MySQL
In diesem Artikel wird der spezifische JavaScript...
Manchmal müssen wir Programme auf dem Windows-Sys...
Docker-Übersicht Docker ist eine Open-Source-Lösu...
Aktuelle Erfahrungen mit der Installation der kos...
Einführung in Textschatten Verwenden Sie in CSS d...
Auf die Vorteile von Typescript müssen wir nicht ...
Es gibt viele Tools zum Sichern von MySQL-Datenba...
Deinstallieren Sie die alte MySQL-Version (übersp...
Detaillierte Beschreibung der Verwendung des Medi...
Linux wird von immer mehr Benutzern geliebt. Waru...
In diesem Artikel wird das Gesundheitsmeldesystem...
MySQL-Group-Replication ist eine neue Funktion, d...
Denn die von Docker abgerufenen Basisimages wie C...
Inhaltsverzeichnis Vorwort 1. Grundkenntnisse zu ...
In diesem Artikel wird der spezifische Code von V...