我已经在NginX中安装了SSL证书,但是它并不适用于FireFox。
下面是我的nginxconfiguration,我没有写我自己,我特别担心本地主机服务器指向不同(错误)的证书。 但我不确定这些是否被使用。
http { passenger_root /usr/local/rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.18; passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.3-p327/ruby; include mime.types; default_type application/octet-stream; access_log /opt/nginx/logs/access.log; client_max_body_size 100m; sendfile on; keepalive_timeout 65; gzip on; gzip_http_version 1.1; gzip_vary on; gzip_comp_level 6; gzip_proxied any; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; # Make sure gzip does not lose large gzipped js or css files gzip_buffers 16 8k; # Disable gzip for certain browsers. gzip_disable "MSIE [1-6].(?!.*SV1)"; server { listen 80; server_name localhost; #charset koi8-r; access_log logs/host.access.log; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name yyyytest.xxx.nl; root /home/railsapps/yyyytest.xxx.nl/source/current/public; passenger_enabled on; rails_env preview; } server { listen 80; server_name wijziging.xxx.nl; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 80; server_name yyyy.xxx.nl; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 443; server_name localhost; #charset koi8-r; access_log logs/host.access.log; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } ssl on; ssl_certificate /etc/ssl/certs/yyyy_xxx_nl.crt; ssl_certificate_key /etc/ssl/certs/positivessl.key; } server { listen 443; server_name wijziging.xxx.nl yyyy.xxx.nl; root /home/railsapps/yyyy.xxx.nl/source/current/public; passenger_enabled on; ssl on; ssl_certificate /etc/ssl/certs/wijziging_xxx_nl.crt; ssl_certificate_key /etc/ssl/certs/wijziging_xxx_nl.key; } }
该证书在Chrome中工作..
TL; DR:你的configuration看起来不错,但正如deppfx所说,似乎你还没有将证书链接回Comodo到你的证书文件。 您只需将额外的证书附加到.crt文件(示例中为cert.pem)即可。 服务器证书需要是文件中的第一个,否则私钥和公钥之间会出现不匹配。
每个浏览器都有一个它信任的颁发其他证书的证书列表。 但是,通常使用的证书将有一个中间步骤 – 即Comodo根证书已被用于签署中间证书,并且已使用该证书颁发证书。 所以链条看起来像这样:
Root Comodo certificate -> Intermediate certificate -> Your certificate
所以,当Firefox连接,它看到你的证书存在,并已经由自称是Comodo的人签名。 但由于Firefox没有中间证书,所以无法validationComodo实际上是否可以信任你的证书。
当您将中间证书添加到您的configuration时,Firefox将收到您的证书和中间证书。 然后,Firefox可以检查中间证书是否真的由Firefox拥有的根证书签名,然后它会信任你的证书。
将这些证书添加到wiziging_xxx.nl.crt中,如下所示:
cat /path/to/intermediate.crt >> /etc/ssl/certs/wijziging_xxx.nl.crt
cat /path/to/root.crt >> /etc/ssl/certs/wijziging_xxx.nl.crt
它看起来像缺less一个根CA(证书颁发机构)以及证书颁发path。


请参阅鲍勃的答案