2 votes

nginx + apache problème avec le port 443

Voici ma configuration nginx pour le port 443 :

server {
    listen           *:443;
    server_name      site.com;

    ssl         on;
    ssl_protocols       SSLv3 TLSv1;
    ssl_certificate     /www/certs/site.com.crt;
    ssl_certificate_key /www/certs/site.com.key;

     access_log /var/log/nginx.site.com-access_log;
    location ~* .(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
        root /www/site.com/;
        index index.html index.php;
        access_log off;
        expires 30d;
    }
    location ~ /.ht {
        deny all;
    }
    location / {
        proxy_pass http://127.0.0.1:81/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-for $remote_addr;
        proxy_set_header Host $host;
        proxy_connect_timeout 60;
        proxy_send_timeout 90;
        proxy_read_timeout 90;
        proxy_redirect off;
        proxy_set_header Connection close;
        proxy_pass_header Content-Type;
        proxy_pass_header Content-Disposition;
        proxy_pass_header Content-Length;
    }
}

Question 1 : Pourquoi me demande-t-on d'entrer un pass PEM dans le certificat ? Comment puis-je envoyer le mot de passe dans la configuration de nginx ?

178-162-174-212:/usr/bin# service apache2 restart
Restarting web server: apache2.

178-162-174-212:/usr/bin# service nginx restart
Restarting nginx: Enter PEM pass phrase:
Enter PEM pass phrase:
[emerg]: bind() to 188.72.245.198:443 failed (98: Address already in use)
[emerg]: bind() to 188.72.245.198:443 failed (98: Address already in use)
[emerg]: bind() to 188.72.245.198:443 failed (98: Address already in use)
[emerg]: bind() to 188.72.245.198:443 failed (98: Address already in use)
[emerg]: bind() to 188.72.245.198:443 failed (98: Address already in use)
[emerg]: still could not bind()
nginx.

Question 2 : Pourquoi y a-t-il un conflit sur le port 443 ?

Configuration d'Apache :

NameVirtualHost *:81
Listen 127.0.0.1:81
Listen 999

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

Si je commente la ligne "Listen 443", le site.com:443 ne fonctionne pas.

5voto

Shane Madden Points 112034

Apache et nginx sont tous deux configurés pour écouter sur le port 443.

Il semble que votre intention soit de faire en sorte que nginx prenne le contrôle de ce port. Vous devez donc supprimer cette configuration d'Apache et redémarrer les deux services : Apache d'abord, puis nginx. Cela devrait permettre à nginx de se lier au port 443 et de répondre à ces requêtes.

En ce qui concerne la phrase de passe du certificat, nginx ne prend pas en charge l'enregistrement de la phrase de passe pour les clés privées déchiffrées dans le fichier de configuration (tant mieux pour eux ; l'obscurité accordée par cela est sans valeur). Décryptez la clé privée (et assurez-vous qu'elle n'est lisible que par l'utilisateur sous lequel nginx est exécuté) :

mv /www/certs/site.com.key /www/certs/site.com.keyold
openssl rsa -in /www/certs/site.com.keyold -out /www/certs/site.com.key

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X