Hintergrund
Aufgrund von Projektanforderungen und Sicherheitsgründen ist es notwendig, den bisherigen HTTP-Schnittstellenzugriff auf https-Zugriff umzustellen, daher muss ein SSL-Zertifikat konfiguriert werden. Die Architektur des Projekts ist wie folgt:
Die Grundarchitektur ist Hard Load (Readwhere) + Soft Load (Nginx) + Tomcat-Cluster. Die Frage ist nun, wo das SSL-Zertifikat konfiguriert werden soll auf der harten Belastung? Oder es auf Nginx bzw. Tomcat konfigurieren? Oder gibt es eine andere Konfigurationsmethode?
Zuerst habe ich es aufgegeben, die harte Last zu konfigurieren, und nachdem ich im Internet nach Informationen gesucht hatte, stellte ich fest, dass ich das Zertifikat nur auf Nginx konfigurieren kann, was bedeutet, dass Nginx https für den Zugriff verwendet und Nginx und Tomcat es verwenden http zu verbinden, also funktioniert es.
Über SSL-Zertifikate
Über SSL-Zertifikate wird hier kurz vorgestellt, und aufgrund der Anforderungen des Projekts ist es auch ein einfaches Verständnis.
SSL-Zertifikate werden grob in drei Typen unterteilt: Domänenebene (dv), Unternehmensebene (ov) und erweiterte Ebene (ev), wobei Sicherheit und Preis in der Reihenfolge steigen. Für den persönlichen Gebrauch können Sie dv verwenden, was für den geschäftlichen Gebrauch günstig ist, ov wird im Allgemeinen verwendet und ev wird unter besonderen Umständen verwendet.
sSL-Zertifikatskonfiguration
Aufgrund der Unterstützung von nginx für die SSL-Zertifikatskonfiguration muss ich die Leistungsfähigkeit von nginx beklagen.
Zertifikatsvorbereitung
nginx-Konfiguration erfordert .pem/.crt-Zertifikat + .key-Geheimschlüssel. Wenn Sie derzeit über andere Zertifikatsformen verfügen, befolgen Sie bitte die entsprechenden Anweisungen, um in den erforderlichen Zertifikatstyp zu konvertieren, andernfalls kann das Zertifikat nicht erstellt werden Die Konfiguration ist abgeschlossen. Im Allgemeinen verfügen einkaufende Händler über entsprechende Konvertierungstools.
Wenn Sie bereit sind, legen Sie das Zertifikat und den geheimen Schlüssel im conf-Verzeichnis von nginx ab (d. h. im selben Verzeichnis wie die Konfigurationsdatei nginx.conf):
Wenn Sie es sind Bei der Konfiguration unter einem Linux-System gilt dies als fertig.
Wenn Sie unter einem Windows-System arbeiten, müssen Sie das Passwort in der .key-Geheimnisdatei entfernen, da Nginx sonst nach der Konfiguration nicht startet Ich stecke fest. Auch hier ist die spezifische Verarbeitungsmethode sehr einfach. Laden Sie die Windows-Version von openssl online herunter, wechseln Sie dann cmd in das bin-Verzeichnis und führen Sie openssl rsa -in server.key -out server2.key aus. key ist für die Konfiguration erforderlich, der Dateiname muss jedoch in server.key geändert werden.
Ändern Sie die Nginx-Konfigurationsdatei
Der Port ist nicht der Standardport 443, sondern wurde in 8185 geändert. Sie können ihn entsprechend Ihren Anforderungen ändern Basic Wenn Sie die Ober- und Unterseite befolgen, wird es kein Problem geben.
server { listen 8185; server_name localhost; ssl on; ssl_certificate server.pem; ssl_certificate_key server.key; ssl_session_timeout 5m; ssl_protocols tlsv1 tlsv1.1 tlsv1.2; ssl_ciphers high:!rc4:!md5:!anull:!enull:!null:!dh:!edh:!exp:+medium; ssl_prefer_server_ciphers on; location / { proxy_set_header host $host:$server_port; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_set_header x-forwarded-proto $scheme; proxy_connect_timeout 5; proxy_send_timeout 5; proxy_read_timeout 5; proxy_pass http://qlddm_server; }
Ändern Sie die Tomcat-Konfigurationsdatei
Obwohl es nicht erforderlich ist, das Zertifikat in Tomcat zu konfigurieren, müssen Sie dennoch die Tomcat-Konfigurationsdatei server.xml ändern, die insbesondere zwei Stellen enthält:
<connector executor="tomcatthreadpool" port="7083" protocol="org.apache.coyote.http11.http11nio2protocol" connectiontimeout="20000" maxconnections="8000" redirectport="8185" proxyport="8185" enablelookups="false" acceptcount="100" maxpostsize="10485760" compression="on" disableuploadtimeout="true" compressionminsize="2048" acceptorthreadcount="2" compressablemimetype="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript" uriencoding="utf-8" />
Sie müssen Ändern Sie sowohl Redirectport als auch Proxyport in Ihre Nginx-Listening-Portnummer.
<valve classname="org.apache.catalina.valves.remoteipvalve" remoteipheader="x-forwarded-for" protocolheader="x-forwarded-proto" protocolheaderhttpsvalue="https" httpsserverport="8185"/>
Sie müssen das obige Wert-Tag hinzufügen. Beachten Sie, dass httpsserverport auch auf die Nginx-Listening-Portnummer geändert werden muss.
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie das Nginx-SSL-Zertifikat für den HTTPS-Zugriff. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!