Maison  >  Article  >  Opération et maintenance  >  Comment configurer le certificat SSL Nginx pour obtenir un accès HTTPS

Comment configurer le certificat SSL Nginx pour obtenir un accès HTTPS

PHPz
PHPzavant
2023-05-12 15:07:121332parcourir

Background

En raison des exigences du projet et des raisons de sécurité, il est nécessaire de modifier l'accès précédent à l'interface http en accès https, un certificat SSL doit donc être configuré. L'architecture du projet est la suivante :

Comment configurer le certificat SSL Nginx pour obtenir un accès HTTPS

L'architecture de base est hardload (readwhere) + softload (nginx) + tomcat cluster, maintenant La question est de savoir où configurer le certificat SSL, directement sur le hardload ? Ou le configurer respectivement sur nginx et tomcat ? Ou existe-t-il une autre méthode de configuration ?

Tout d'abord, j'ai renoncé à configurer le hardload, et puis en cherchant des informations sur Internet, j'ai découvert que je ne peux configurer le certificat que sur nginx, ce qui veut dire que l'accès nginx utilise https, et nginx et tomcat utilisent http Connect, afin de se faire une idée globale.

À propos du certificat SSL

À propos du certificat SSL voici une brève introduction, et c'est aussi à cause des besoins du projet que j'ai une brève compréhension.

Les certificats SSL sont grossièrement divisés en trois types : niveau domaine (dv), niveau entreprise (ov) et niveau amélioré (ev), la sécurité et le prix augmentant dans l'ordre. Choisissez en fonction de vos propres besoins. Pour un usage personnel, vous pouvez utiliser dv, qui est bon marché ; pour un usage professionnel, ov est généralement utilisé et ev est utilisé dans des circonstances particulières.

sconfiguration du certificat sl

Cette implémentation est possible grâce à la prise en charge par nginx de la configuration du certificat ssl. devient possible, et je dois déplorer la puissance de nginx.

Préparation du certificat

La configuration nginx nécessite un certificat .pem/.crt + une clé secrète .key, si vous avez d'autres formulaires maintenant Certificat, veuillez suivez les instructions pertinentes pour le convertir dans le type de certificat requis, sinon la configuration du certificat ne pourra pas être terminée. Généralement, les commerçants acheteurs disposeront des outils de conversion correspondants.

Une fois que vous êtes prêt, placez le certificat et la clé secrète dans le répertoire conf de nginx (c'est-à-dire dans le même répertoire que le fichier de configuration nginx.conf). Une attention particulière doit être portée ici :

# 🎜🎜#
  1. S'il est configuré sous un système Linux, il est prêt

  2. S'il est configuré sous un système Windows, vous devez supprimer le mot de passe dans le fichier secret .key, sinon nginx ne démarrera pas après la configuration, et je suis coincé ici. La méthode de traitement spécifique est également très simple. openssl en ligne, puis cmd pour basculer vers le répertoire bin et exécuter openssl rsa -in server.key -out server2.key Le server2.key généré est le fichier de clé secrète requis pour la configuration, mais le nom du fichier doit être modifié en. serveur.clé.

Modifier le fichier de configuration nginx

Ce qui suit fait partie de mon fichier de configuration nginx.conf, le port est obsédé par le non-utilisation du 443 par défaut, mais changez-le en 8185. Modifiez-le simplement en fonction de vos besoins. Les autres configurations sont essentiellement les suivantes et il n'y aura aucun problème.

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;
    }

Modifier le fichier de configuration Tomcat

Bien qu'il ne soit pas nécessaire de configurer le certificat dans Tomcat, vous devez toujours modifier la configuration de Tomcat fichier de configuration server.xml, comprenant spécifiquement deux endroits :

<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"
  />

Vous devez modifier à la fois le redirectport et le proxyport en votre numéro de port d'écoute nginx.

<valve classname="org.apache.catalina.valves.remoteipvalve"
       remoteipheader="x-forwarded-for"
       protocolheader="x-forwarded-proto"
       protocolheaderhttpsvalue="https" httpsserverport="8185"/>

Vous devez ajouter les balises de valeur ci-dessus. Notez que httpsserverport doit également être modifié par le numéro de port d'écoute nginx.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer