web-dev-qa-db-fra.com

Nginx: échec de SSL_CTX_use_PrivateKey_file (..)

J'ai auto-généré 2 certificats auto-signés avec openssl à des fins de test en utilisant:

    $ Sudo openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=FR/ST=Charente/L=Mornac/O=Office/CN=api.cockpit.yves" -keyout /usr/local/etc/nginx/ssl/api.cockpit.yves.key -out /usr/local/etc/nginx/ssl/api.cockpit.yves.crt
    Generating a 4096 bit RSA private key
    ..........................................................................++
    ...................++
    writing new private key to '/usr/local/etc/nginx/ssl/api.cockpit.yves.key'
    -----
    $ Sudo openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=FR/ST=Charente/L=Mornac/O=Office/CN=admin.cockpit.yves" -keyout /usr/local/etc/nginx/ssl/admin.cockpit.yves.key -out /usr/local/etc/nginx/ssl/admin.cockpit.yves.crt
    Generating a 4096 bit RSA private key
    ..................................................................................................................................................++
    ..............................++
    writing new private key to '/usr/local/etc/nginx/ssl/admin.cockpit.yves.key'
    -----

et dans mon fichier nginx.conf, j'ai configuré les serveurs Https avec:

server {
    listen       8444 ssl;

    server_name  admin.cockpit.yves;

    ssl_certificate  ssl/admin.cockpit.yves.crt;
    ssl_certificate_key ssl/admin.cockpit.yves.crt;
    ...
}

server {
    listen       8445 ssl;

    server_name  api.cockpit.yves;

    ssl_certificate  ssl/api.cockpit.yves.crt;
    ssl_certificate_key ssl/api.cockpit.yves.crt;
    ...
}

cependant en testant la configuration nginx, j'obtiens l'erreur suivante:

    Sudo nginx -t
    nginx: [emerg] SSL_CTX_use_PrivateKey_file("/usr/local/etc/nginx/ssl/admin.cockpit.yves.crt") 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)
    nginx: configuration file /usr/local/etc/nginx/nginx.conf test failed

qu'est-ce qui pourrait mal? est-ce parce que j'essaie de configurer 2 certificats pour 2 sous-domaines différents (admin. et api.) pour le même domaine cockpit.yves?

merci pour vos commentaires

10
user762579

Votre fichier de clé ne contient probablement pas votre clé .

J'ai eu ce problème également. Dans mon cas, j'avais collé mon crt dans ma clé (et mon fichier réel crt était correct).

Mes fichiers de clés commencent par la chaîne: -----BEGIN RSA PRIVATE KEY-----

Se termine ensuite par la chaîne: -----END RSA PRIVATE KEY-----

Dans les commentaires sous la question, Richard Smith a en fait suggéré cela comme solution. Je le poste comme réponse pour aider les autres plus tard. Accessoires à Richard.


MISE À JOUR

J'ai également rencontré ce message en collant un certificat combiné avant le certificat dans le fichier crt que j'ai alimenté mon serveur nginx.

9
James T Snell