内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问

1、在内网中开启https访问,使用ip,请直接看第二步。如果是外网域名的话,建议直接去从 阿里云或者其他的网站中直接用权威机构颁发的证书。地址

内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问_第1张图片

2、请先安装OpenSSL 

3、生成证书

创建根证书
新建anxinCA.cnf文件并输入以下内容:

[ req ]
distinguished_name  = req_distinguished_name
x509_extensions     = root_ca

[ req_distinguished_name ]

# 以下内容可随意填写
countryName             = CN (2 letter code)
countryName_min         = 2
countryName_max         = 2
stateOrProvinceName     = beijing
localityName            = beijing
0.organizationName      = anxin
organizationalUnitName  = technology 
commonName              = anxin
commonName_max          = 64
emailAddress            = [email protected] 
emailAddress_max        = 64

[ root_ca ]
basicConstraints            = critical, CA:true

4、在创建一个文件  anxinServerCA.ext     建议先创建anxinServerCA.txt,修改完毕后再把后缀改为  ext

subjectAltName = @anxin
extendedKeyUsage = serverAuth

[anxin]

# 域名,如有多个用DNS.2,DNS.3…来增加
DNS.1 = 
# IP地址
IP.1 = 192.168.137.1

文件介绍
anxinCA.cnf文件是为申请CA根证书的配置文件;
anxinServerCA.ext是生成服务器证书的扩展配置文件;

打开,cmd中执行 如下命令  注意下面命令中的  anxin CA可以改为自己的信息,然后   /CN=192.168.137.1  也要改为自己要对应的ip

openssl req -x509 -newkey rsa:2048 -out anxinCA.cer -outform PEM -keyout anxinCA.pvk -days 10000 -verbose -config anxinCA.cnf -nodes -sha256 -subj "/CN=anxin CA"

openssl req -newkey rsa:2048 -keyout anxinServerCA.pvk -out anxinServerCA.req -subj /CN=192.168.137.1 -sha256 -nodes
openssl x509 -req -CA anxinCA.cer -CAkey anxinCA.pvk -in anxinServerCA.req -out anxinServerCA.cer -days 10000 -extfile anxinServerCA.ext -sha256 -set_serial 0x1111

6、执行完毕后会生成相应的文件。

内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问_第2张图片

7、在nginx中配置https加密文件。 以nginx.conf中修改为例,建议在conf同级别,新建一个文件夹 ssl  ,然后把anxinServerCA.pvk     和anxinServerCA.cer   复制过去,我改名为  cert.pvk  ,cert.cer  (可以不修改)

 server {

    listen 443 default ssl;  #监听443端口

    server_name    www.test000001.com;

    ssl_certificate     /etc/nginx/ssl/cert.cer;

    ssl_certificate_key /etc/nginx/ssl/cert.pvk;

    ssl_session_cache    shared:SSL:1m;

    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;

    ssl_prefer_server_ciphers  on;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    location / {

        root /test_code;

        index index.html;

    }

}

8、此时配置完成之后,打开chrome浏览器访问的时候,会提示不安全。然后  安装客户端证书。 安装步骤如下。

  1)双击 anxinCA.cer 文件    --安装证书 -- 选择本地计算机   - 将所有有证书都放入下列存储   -点击浏览  -  受信任的根证书颁发机构

 

内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问_第3张图片

内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问_第4张图片

内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问_第5张图片

点击确定 ,然后下一步,会提示导入完成。 此时关闭浏览器重新打开,然后左上角的变为了 安全连接,即可。

注意,如果此时还是不安全, 记得一定要重启电脑然后在打开浏览器访问后尝试,如果还不行,在尝试第9步

 

9、此时若还不安全,错误代码:NET::ERR_CERT_AUTHORITY_INVALID

内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问_第6张图片

 

 

10、解决办法 。在chrome的地址栏里输入 chrome://net-internals/#hsts    ,把192.168.137.1   从HSTS中删除,如下图: 然后重启浏览器
                  原因在于,chrome浏览器新加入了HSTS策略(见上图红色圈)。使用HSTS策略是chrome加入的新特性,使用该策略的网站,会强制浏览器使用HTTPS协议与该网站通信

内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问_第7张图片

删除证书 

【Win+R】—> certmgr.msc —> 操作 —>查找证书 —> 右键删除

参考连接  https://stackoverflow.com/questions/43929436/subject-alternative-name-missing-err-ssl-version-or-cipher-mismatch

 

 

 

你可能感兴趣的:(内网使用openssl自签名证书开启https连接,同时解决chrome浏览器中的不安全访问)