Nginx
Nginx,設置 https
我正在嘗試使用 NGINX ver 1.4.7 和 Phusion Passenger 4.0.41 在我的 ubuntu 伺服器上設置 https。
我使用這兩個命令創建了 .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% 確定我向 sslshopper.com 的人發送了正確的 .csr 文件,但這看起來他們不匹配。
你怎麼看待這件事?
您可以使用以下方法手動驗證證書/密鑰對:
openssl x509 -noout -modulus -in subdomain_domain_com.crt | openssl md5 openssl rsa -noout -modulus -in server.key | openssl md5
兩個命令的輸出應該是一樣的。這將告訴您這是一對有效的。
如果它是有效的,但你得到了那個錯誤,請查看nginx 中的“證書鏈”部分 - 配置 https 伺服器。NGINX 期望鍊式證書位於一個文件中,中間連接在伺服器證書之後。如果您將它們的順序錯誤,那就是您將得到的錯誤。