Nginx,设置 https

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 文件,但看起来它们不匹配。

你怎么看待这件事?

答案1

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

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

两个命令的输出应该相同。这将告诉您这是一对有效的命令。

如果它是有效的,但你得到了这个错误,请查看“证书链”部分nginx - 配置 https 服务器。NGINX 要求链式证书位于一个文件中,中间证书连接在服务器证书之后。如果顺序错误,就会出现错误。

相关内容