Я получил два файла от службы сертификации: 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
Надеюсь, это поможет.