Pas*_*ger 4 ssl nginx https ruby-on-rails phusion-passenger
我正在尝试使用 NGINX 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
Run Code Online (Sandbox Code Playgroud)
并将 .csr 发送到 sslshopper.com 伙计们
得到3个文件:
Root CA Certificate - AddTrustExternalCARoot.crt
Intermediate CA Certificate - USERTrustSecureServerCA.crt
Your COMODO SSL Certificate - subdomain_domain_com.crt
Run Code Online (Sandbox Code Playgroud)
这就是我的 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.
}
}}
Run Code Online (Sandbox Code Playgroud)
当我尝试启动服务器时,我需要输入我在创建 .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)
Run Code Online (Sandbox Code Playgroud)
我 100% 确定我将正确的 .csr 文件发送给了 sslshopper.com,但这看起来不匹配。
你怎么看待这件事?
小智 6
您可以使用以下方法手动验证证书/密钥对:
openssl x509 -noout -modulus -in subdomain_domain_com.crt | openssl md5
openssl rsa -noout -modulus -in server.key | openssl md5
Run Code Online (Sandbox Code Playgroud)
这两个命令的输出应该是相同的。这将告诉您这是一对有效的配对。
如果它有效,但您收到该错误,请查看nginx-configuration https servers 中有关“证书链”的部分。NGINX 期望一个链接的证书在一个文件中,中间连接在服务器证书之后。如果您以错误的顺序排列它们,这就是您将得到的错误。
归档时间: |
|
查看次数: |
1294 次 |
最近记录: |