Назад | Перейти на главную страницу

SSL-сертификат Nginx

Я получил два файла от службы сертификации: CSR.txt: Выглядит так:

        -----BEGIN CERTIFICATE REQUEST-----
Code
-----END CERTIFICATE REQUEST-----

и Private_Key.txt в том же формате, что я пытаюсь настроить их на Nginx, но я всегда получаю эту ошибку при перезапуске Nginx

failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib)

Я переименовал CSR.txt в domain.crt и private_key.txt в domain_key.key мою конфигурацию nginx:

server {
    listen 443;
    server_name domain.com;

    root html;
    index index.html index.htm;

    ssl on;
    ssl_certificate /etc/ssl/certs/domain.crt;
    ssl_certificate_key /usr/share/nginx/www/domain.com/domain_key.key;

    ssl_session_timeout 5m;

    ssl_protocols SSLv3 TLSv1;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
    ssl_prefer_server_ciphers on;

    location / {
        try_files $uri $uri/ =404;
    }
}

CSR - это запрос для сертификата, а не для сертификата. В большинстве случаев это то, что вы создаете, а не кто-то другой.

Он используется вашим поставщиком SSL для создания сертификата, который они вам предоставят (обычно в виде файла .crt).

Кстати, для безопасности лучше сгенерировать закрытый ключ (как и должно быть частный). Следуйте инструкциям @davey, чтобы создать один и необходимый CSR.

Согласно ceejayoz. В большинстве случаев процесс работает следующим образом:

Вы генерируете:

cert.key
cert.csr (using cert.key)

Вы отправляете cert.csr в службу сертификации (CA). Центр сертификации отправляет вам:

cert.pem

cert.pem ваш подписанный сертификат и должен выглядеть так:

-----BEGIN CERTIFICATE REQUEST-----
MIICpjCCAY4CAQAwYTEaMBgGA1UEAxMRZG9jcy4zY2JldGEuY28udWsxDzANBgNV
...
efqf6gYqezWiXs1s5aNh363F1j+o7TWi0D5ayEBv/lihAmLs4dsaJzSvZiWVxnIr
5hUED99Ne1WUbg==
-----END CERTIFICATE REQUEST-----

Ключ cert.key должно выглядеть так:

-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAqXpfLXr2oRPwP+Pt4Az+iHldiHrIDnVW/uWY3MPvAJN8BWLe
...
f2UKtbEUsSDQ2BWiQia/3VUzLOlDArYxqA7kZFKes2z9ji8vobPG27o=
-----END RSA PRIVATE KEY-----

КСО cert.csr должно выглядеть так:

-----BEGIN CERTIFICATE REQUEST-----
MIIEqjCCApICAQAwZTEeMBwGA1UEAxMVZGV2Y2lyY3MuM2NiZXRhLmNvLnVrMQ8w
...
MctmU41Owfq+sIOGZ7G4zZqezUYownWt13hbprLk4DtWWEENRmvNinl0uCjAUA==
-----END CERTIFICATE REQUEST-----

Некоторые CA сгенерируют для вас ключ и CSR для удобства (startssl может это сделать), но в любом случае для работы с вашим сайтом nginx вам понадобится только cert.pem и key.pem файлы. Можете ли вы получить их из источника сертификата?

Когда вы их получите, вы сможете:

openssl rsa -in key.pem -modulus

openssl rsa -in cert.pem -modulus

Это распечатает сертификат и ключевой модуль. Они должны совпадать.

Вы можете сбросить запрос с помощью:

openssl req -in cert.csr

Надеюсь, это поможет.