web-dev-qa-db-fra.com

Nginx Config échoue avec clé SSL / PEM (cas unique)

J'essaie d'installer SSL sur mon proxy inverse Nginx avec des touches SSL certifiées, mais je reçois ce message lorsque j'essaie de redémarrer le serveur:

Restarting nginx: [emerg]: SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/cert.key") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)
configuration file /etc/nginx/nginx.conf test failed

tous les familles sont racines: racine avec 600 autorisations J'ai testé les certificats et ils sont validés avec ce site Web: http://ssltools.com/cert_key_match

il n'y a pas de caractiers étranges triés dans mes clés et a 64 caractéristiques par ligne

voici mon fichier de configuration

server {
    listen   443;
    server_name     my.domain.com;
    ssl on;
    ssl_certificate      conf.d/cert.pem;
    ssl_certificate_key  conf.d/cert.key;

    location / {
         proxy_pass         http://upstream1;
         proxy_redirect     off;
         proxy_buffering    off;
         proxy_set_header        Host            $Host;
         proxy_set_header        X-Real-IP       $remote_addr;
         proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}

Des idées? Merci

4
Fredow

chèque ICI

J'espère que vous avez collé - collé avec les lignes suivantes:

-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
4
Ilja

Une solution différente pouvant fonctionner pour les autres:

utilisez le .pem Fichier pour les deux ssl_certificate et ssl_certificate_key

C'est-à-dire:

...
ssl on;
ssl_certificate      conf.d/cert.pem;
ssl_certificate_key  conf.d/cert.pem;
...
3
Peter Klipfel

FYI, assurez-vous que votre bloc de début est identique au bloc attendu, caractère de caractère. Le mien a commencé avec 4 tirets, pas 5. ---- vs -----. Les messages d'erreur d'outil de validation ne sont pas très précis lorsque vous faites cette erreur.

2
Joseph Lust

J'ai eu le même problème (de /var/log/nginx/error.log)

2019/03/20 01:25:41 [emerg] 2509#0: SSL_CTX_use_PrivateKey_file("/etc/nginx/conf.d/sslcert/mm.merchantspring.com.au.key") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: ANY PRIVATE KEY error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib)

ensuite, j'ai trouvé que mon fichier clé doit également être enchaîné avec certificat. Après la mise à jour du fichier de clé, redémarrez NGinx, cela fonctionne.

Mon env:

Le fichier de configuration NGinx est comme ceci:

    ssl_certificate /etc/nginx/conf.d/sslcert/mywebsite.pem;
    ssl_certificate_key /etc/nginx/conf.d/sslcert/mywebsite.key;

mywebsite.pem (chaîné, 4 certificats totalement. Cat mywebsite.crt intermédiaire.crt> mywebsite.pem):

-----BEGIN CERTIFICATE-----
...

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...

-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...

-----END CERTIFICATE-----

mywebsite.key: (enchaîné avec CRT et clé)

-----BEGIN CERTIFICATE-----
 ...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----

J'ai eu le fichier clé du site Web de Godaddy au lieu de la créer par OpenSSL. Mais je pense que ce sera mieux si cela va avec OpenSSL.

1
user515131