NGINX HTTPS服务器 - SSL_ERROR_BAD_CERT_DOMAIN

时间:2017-07-25 14:51:18

标签: apache ssl nginx https

我在EC2实例上运行了NGINX服务器,并且我在该服务器上实现了HTTPS。我在另一个站点上生成了SSL证书并将其放在我的服务器上。重新启动服务器,它仍然运行正常,但有两个问题(我的域名是hbesco.com.br,这是我为证书请求提供的通用名称):

它不会默认输入HTTPS,而是输入HTTP。另外,如果我强迫它https://hbesco.com.br,它就可以了。但对于https://www.hbesco.com.br,它会给我以下错误:

无法与对等方安全通信:请求的域名与服务器的证书不匹配。 HTTP严格传输安全:false HTTP公钥固定:false证书链:----- BEGIN CERTIFICATE -----(...)

我的NGINX网站 - 可用/默认设置如下:

server {
       listen 443 default_server;

       ssl on;
       ssl_certificate /usr/share/nginx/certificado-2048/CertificadoSSL.crt;
       ssl_certificate_key /usr/share/nginx/certificado-2048/CertificadoSSL.key;

        server_name hbesco.com.br;
        passenger_enabled on;
        rails_env    production;
        root         /home/ubuntu/hybrazil/current/public;

        # 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 hbesco.com.br;
        passenger_enabled on;
        rails_env    production;
        root         /home/ubuntu/hybrazil/current/public;

        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

关于我输入" hbesco.com.br"它首先是http,为什么当它之前有www时,它会给我这个错误?

1 个答案:

答案 0 :(得分:1)

  

它不会默认输入HTTPS,而是输入HTTP

您需要添加重写规则以强制将访问者从http重定向到https:

server {
        listen 80;
        server_name hbesco.com.br;
        rewrite     ^   https://$server_name$request_uri? permanent;
}
  

无法与对等方安全通信:请求的域名有   与服务器的证书不匹配。

这意味着证书中仅列出hbesco.com.br。您可以使用任何ssl检查器进行检查。