Hshen
人若无名 便可潜心练剑
GitHub Abou byHshen Hshen

NET::ERR_CERT_COMMON_NAME_INVALID

2018年8月26日

预计阅读:2min

NET:::ERR_CERT_COMMON_NAME_INVALID 或“您的连接不是私密连接”

Chrome58以后对https的证书认证较为严格,证书里必须带有正确的Common Name,也就是必须有Subject Alternative Name. Google官网介绍链接地址

本机环境

  • Mac: 10.12.6

  • NGINX:nginx/1.12.2

  • nginx 配置文件

    server {
        listen       80;
        server_name  git.hackshen.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   /Users/hackshen/nginx-web/;
            index  index.html index.htm;
        }
        error_page   500 502 503  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    
    server {
        listen 443;
        server_name git.hackshen.com;
        ssl on;
        ssl_certificate  /usr/local/etc/nginx/hackshen.crt;
        ssl_certificate_key  /usr/local/etc/nginx/hackshen.key;
        location / {
             root   /Users/hackshen/nginx-web;
             index  index.html index.htm;
        }
    }

生成证书

1、在[ req ]一节下找到req_extensions = v3_req 取消注释
2、在[ v3_req ] 一节 增加 subjectAltName = @alt_names
3、在[ v3_req ] 一节 的上方增加一节
    DNS.1 = i.alicdn.com
    IP.1 = 127.0.0.1
4、生成csr
    `openssl req -new -nodes -keyout server.key -out server.csr -config openssl.cnf`
5、生成公钥
    `openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt -extensions v3_req -extfile openssl.cnf`
6关于`openssl.cnf`我的Mac上装的有OpenSSL但是没有这个文件,博主是在自己的centos上拷下来的

安装证书

  • 双击server.crt安装证书到钥匙串里,且在钥匙串里面要选择始终信任