Nginx,安装https

我试图在我的ubuntu服务器上用NGINX ver 1.4.7和Phusion Passenger 4.0.41来设置https

我使用这两个命令创build了.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. } }} 

当我尝试启动服务器时,需要input我在创build.key文件时input的密码。 何时被接受,我得到的错误:

 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家伙,但看起来他们不匹配。

你怎么看待这件事?

您可以使用以下方式手动validation证书/密钥对:

 openssl x509 -noout -modulus -in subdomain_domain_com.crt | openssl md5 openssl rsa -noout -modulus -in server.key | openssl md5 

这两个命令的输出应该是一样的。 这会告诉你,这是一个有效的配对。

如果它是有效的,但你得到这个错误,请看看nginx中的 “证书链”一节- configurationhttps服务器 。 NGINX期望一个链接的证书在一个文件中,中间连接在服务器证书之后。 如果你把他们的顺序弄错了,那就是你会得到的错误。