Я пытаюсь настроить https на своем сервере ubuntu с NGINX версии 1.4.7 и Phusion Passenger 4.0.41.
Я создал .key и .csr с помощью этих двух команд
sudo openssl genrsa -des3 -out server.key 2048
sudo openssl req -new -key server.key -out server.csr
и отправил .csr ребятам sslshopper.com
Получил 3 файла:
Root CA Certificate - AddTrustExternalCARoot.crt
Intermediate CA Certificate - USERTrustSecureServerCA.crt
Your COMODO SSL Certificate - subdomain_domain_com.crt
Так сейчас выглядит мой nginx.conf
http {
passenger_root /usr/local/rvm/gems/ruby-2.1.1/gems/passenger-4.0.41;
passenger_ruby /usr/local/rvm/gems/ruby-2.1.1/wrappers/ruby;
server_names_hash_bucket_size 64;
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
server {
listen 443 default ssl;
ssl on;
ssl_certificate /opt/nginx/ssl/subdomain_domain_com.crt;
ssl_certificate_key /opt/nginx/ssl/server.key;
server_name app.petosevic.com;
root /var/www/petosevic/public;
passenger_enabled on;
location / {
# set X-FORWARDED_PROTO so ssl_requirement plugin works
proxy_set_header X-FORWARDED_PROTO https;
# standard rails+mongrel configuration goes here.
}
}}
И когда я пытаюсь запустить сервер, мне нужно ввести пароль, который я ввел при создании файла .key. Когда принято, я получаю сообщение об ошибке:
nginx: [emerg] SSL_CTX_use_PrivateKey_file("/opt/nginx/ssl/server.key") failed (SSL: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch)
Я на 100% уверен, что отправил правильный файл .csr ребятам из sslshopper.com, но похоже, что они не совпадают.
Что Вы думаете об этом?
Вы можете проверить пару сертификат / ключ вручную, используя:
openssl x509 -noout -modulus -in subdomain_domain_com.crt | openssl md5
openssl rsa -noout -modulus -in server.key | openssl md5
Результат двух команд должен быть одинаковым. Это скажет вам, что это действительная пара.
Если он действителен, но вы получаете эту ошибку, взгляните на раздел "цепочки сертификатов" в nginx - настройка https серверов. NGINX ожидает, что связанный сертификат будет в одном файле, а промежуточный сертификат будет объединен после сертификата сервера. Если вы разместите их в неправильном порядке, вы получите ошибку.