Wenn Sie HTTPS intern oder zu Hause unterstützen möchten, müssen Sie dafür bezahlen, das mühsame Verfahren durchführen und es alle paar Jahre aktualisieren, was äußerst mühsam ist.
Natürlich bezahle ich dafür, daher kann ich es nicht frei in HTTPS konvertieren, und am Ende entscheide ich mich für das Oreore-Zertifikat, aber deshalb habe ich ein "x" in die URL eingefügt und das Importieren des Zertifikats, um es zu verbessern, ist ehrlich gesagt mühsam.
Immerhin werde ich es mit angehängtem × machen, aber wenn das der Fall ist, kann wget nicht richtig gemacht werden, und es wird im Netz gesagt, dass es nicht sicher ist, also was machst du? !!
Zu dieser Zeit erschien "Let's Encrypt" mit voller Zufriedenheit! Die Veröffentlichung wurde aus verschiedenen Gründen mehrmals verschoben, aber dieses Mal ist sie endlich "Public Beta" geworden und jeder kann sie frei verwenden, also werde ich sie vorstellen!
Offizielle HP: https://letsencrypt.org/ Github:https://github.com/letsencrypt/letsencrypt
Lets Encrypt ist eine kostenlose Zertifizierungsstelle, die jeder problemlos verwenden und automatisieren kann!
Let’s Encrypt is a new Certificate Authority: It’s free, automated, and open.
Ich möchte sie in der folgenden Reihenfolge vorstellen.
Es sieht wie folgt aus.
Plugin | Auth | Inst |
---|---|---|
apache | Y | Y |
standalone | Y | N |
webroot | Y | N |
manual | Y | N |
nginx | Y | Y |
Dieses Mal werden wir "Standalone" und "Webroot" verwenden, die relativ informativ sind.
Das Folgende ist eine kurze Erklärung.
Plugin | Methode |
---|---|
Stand Alone | Lassen Sie das Zertifikat erhalten'Vorgehensweise mit einem WEB-Server für die Verschlüsselung |
Web Root | So erhalten Sie ein Zertifikat auf einem vorhandenen WEB-Server |
Jedes Plug-In hat seinen eigenen Zweck. Ich werde das als nächstes erklären.
Voraussetzung ist eine ** Domain-Akquisition! ** **. Es kann nicht für Server verwendet werden, die keine Domäne erworben haben (lokale Domäne oder IP). Sie können jedoch eine lokale Domain verwenden, solange Sie eine Domain mit demselben Namen haben.
Wenn es sich um einen einfachen öffentlichen Server handelt, ist Webroot in Ordnung, aber ich denke, dass Standalone für eine kleine spezielle Umgebung effektiv ist. Übrigens, wenn es darum geht, welche Methode einfacher ist, ist Webroot oft einfacher.
Die Schlussfolgerung, welche Art von Befehl erforderlich ist, lautet wie folgt.
console
$ sudo docker run -it --rm \
--expose 80 \
-p 80:80 \
--name letsencrypt \
-v "/etc/letsencrypt:/etc/letsencrypt" \
-v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
quay.io/letsencrypt/letsencrypt:latest \
certonly \
--standalone \
--standalone-supported-challenges http-01 \
--register-unsafely-without-email \
--renew-by-default \
-d www.my-site.com \
--agree-tos
Wenn www.my-site.com
eine Verbindung zum erstellten Docker herstellen kann, sollte das Zertifikat nach Ausführung des obigen Befehls unter / etc / letsencrypt
erstellt worden sein.
Im aktuellen offiziellen Docker ist nur Port 443 geöffnet, sodass Sie Expose ausführen müssen, um die Kommunikation über Port 80 zu akzeptieren.
console
$ git clone https://github.com/letsencrypt/letsencrypt $HOME/letsencrypt
$ $HOME/letsencrypt/letsencrypt-auto --help
↑ Nur zum ersten Mal ausführen
console
$ $HOME/letsencrypt/letsencrypt-auto
certonly \
--webroot \
--webroot-path /usr/share/nginx/html \
--register-unsafely-without-email \
--renew-by-default \
-d www.my-site.com \
--agree-tos
Liste der Argumente, die ich kenne
Streit | Erläuterung |
---|---|
--standalone | Angeben eines Plug-Ins |
--standalone-supported-challenges http-01 | Verwenden Sie HTTP während der Authentifizierungsaufforderung |
--standalone-supported-challenges tls-sni-01 | Verwenden Sie HTTPS während der Authentifizierungsaufforderung |
--webroot | Verwenden Sie Webroot als Plug-In |
--webroot-path [document root] | Geben Sie das Dokumentstammverzeichnis des Webservers an |
--no-verify-ssl | Zertifikatprüfung ignorieren |
--tls-sni-01-port [port] | Angeben eines Ports bei Verwendung von HTTPS in einer Authentifizierungsaufforderung |
--http-01-port [port] | Angeben eines Ports bei Verwendung von HTTP in einer Authentifizierungsaufforderung |
--register-unsafely-without-email | E-Mail-Registrierung weggelassen |
--renew-by-default | Auslassung der Bestätigung bei Erneuerung eines Zertifikats |
-d [domain] | Domänenspezifikation |
--agree-tos | Auslassung der Genehmigung bei der Ausstellung eines Zertifikats |
--config-dir [dirctory] | Speicherort der Konfigurationsdatei |
--work-dir [directry] | Speicherort des Arbeitsverzeichnisses |
--logs-dir [directry] | Speicherort des Protokollverzeichnisses |
--staging | Referenzinformationen |
--debug | Debug-Anzeige |
-vvvvvvv | Transzendentale Debug-Anzeige |
Die Ergebnisse sind für Standalone und Webroot gleich.
console
$ sudo tree /etc/letsencrypt/
/etc/letsencrypt/
|-- accounts
| `-- acme-v01.api.letsencrypt.org
| `-- directory
| `-- samplehashsamplehash
| |-- meta.json
| |-- private_key.json
| `-- regr.json
|-- archive
| `-- www.my-site.com
| |-- cert1.pem
| |-- cert2.pem
| |-- chain1.pem
| |-- chain2.pem
| |-- fullchain1.pem
| |-- fullchain2.pem
| |-- privkey1.pem
| `-- privkey2.pem
|-- csr
| |-- 0000_csr-letsencrypt.pem
| `-- 0001_csr-letsencrypt.pem
|-- keys
| |-- 0000_key-letsencrypt.pem
| `-- 0001_key-letsencrypt.pem
|-- live
| `-- www.my-site.com
| |-- cert.pem -> ../../archive/www.my-site.com/cert2.pem
| |-- chain.pem -> ../../archive/www.my-site.com/chain2.pem
| |-- fullchain.pem -> ../../archive/www.my-site.com/fullchain2.pem
| `-- privkey.pem -> ../../archive/www.my-site.com/privkey2.pem
`-- renewal
`-- www.my-site.com.conf
Geben Sie für den Webserver den symbolischen Link unter live an und verwenden Sie ihn. Die Endnummer der Datei wird entsprechend der Anzahl der Ausführungen erhöht. Da die Verzeichnisse unter Live für jede Domäne getrennt sind, können mehrere Verzeichnisse verwaltet werden. Das Verzeichnis der CSR-Schlüssel ist nicht in Domänen unterteilt, sodass es unabhängig von der Domäne gemeinsam erhöht wird.
Bei der ersten Ausführung wird eine Einstellungsdatei generiert. Ab dem zweiten Mal wird es ausgeführt, nachdem die Einstellungsdatei unter Verwendung des Domänennamens als Schlüssel gelesen wurde. Daher ist es nicht erforderlich, das in der Einstellungsdatei beschriebene als zweites Migrationsargument zu übergeben (glaube ich).
Offizielle HP # -Konfigurationsdatei
console
# This is an example of the kind of things you can do in a configuration file.
# All flags used by the client can be configured here. Run Let's Encrypt with
# "--help" to learn more about the available options.
# Use a 4096 bit RSA key instead of 2048
rsa-key-size = 4096
# Always use the staging/testing server
server = https://acme-staging.api.letsencrypt.org/directory
# Uncomment and update to register with the specified e-mail address
# email = [email protected]
# Uncomment and update to generate certificates for the specified
# domains.
# domains = example.com, www.example.com
# Uncomment to use a text interface instead of ncurses
# text = True
# Uncomment to use the standalone authenticator on port 443
# authenticator = standalone
# standalone-supported-challenges = tls-sni-01
# Uncomment to use the webroot authenticator. Replace webroot-path with the
# path to the public_html / webroot folder being served by your web server.
# authenticator = webroot
# webroot-path = /usr/share/nginx/html
Wenn Sie HTTPS für Nginx unterstützen möchten, können Sie dies wie folgt einstellen!
bash:/etc/nginx/conf.d/example_ssl.conf
# HTTPS server
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/letsencrypt/live/www.my-site.com/fullchain.pem; #hinzufügen
ssl_certificate_key /etc/letsencrypt/live/www.my-site.com/privkey.pem; #hinzufügen
# ssl_certificate /etc/nginx/cert.pem; #Auskommentieren
# ssl_certificate_key /etc/nginx/cert.key; #Auskommentieren
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
Das ist alles. Der Eindruck ist, dass es einfach zu bedienen und auf Sicherheit ausgelegt ist. Es gibt jedoch einige Stimmen, die besagen, dass es nicht möglich ist, auf der Host-Seite "sudo" zu drücken, wenn ein Befehl ausgeführt wird (die Verschlüsselung kann nicht so sehr als vertrauenswürdig eingestuft werden), und es gibt einen entsprechenden. diafygi/letsencrypt-nosudo
Let's Encrypt wird der Zertifikatbranche großen Schaden zufügen. Wenn Sie eine Chance haben, probieren Sie es bitte aus.