Heim >Betrieb und Instandhaltung >Nginx >So konfigurieren Sie das Nginx-SSL-Zertifikat für den HTTPS-Zugriff

So konfigurieren Sie das Nginx-SSL-Zertifikat für den HTTPS-Zugriff

PHPz
PHPznach vorne
2023-05-12 15:07:121378Durchsuche

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:

So konfigurieren Sie das Nginx-SSL-Zertifikat für den HTTPS-Zugriff

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):

  1. Wenn Sie es sind Bei der Konfiguration unter einem Linux-System gilt dies als fertig.

  2. 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen