nginx自生成证书导入chrome

 

1.生成命令如下,其中:/C=CN(国家缩写)/ST=(省份)/L=(城市)/O=(组织名称):n”,生成根证书私钥和根证书 -keyout CA-private.key -out CA-certificate.crt

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -subj "/C=CN/ST=SiChuan/L=ChengDu/O=ACS" -keyout CA-private.key -out CA-certificate.crt -reqexts v3_req -extensions v3_ca

2.生成自签名证书私钥 -out private.key

openssl genrsa -out private.key 2048

3.根据自签名证书私钥生成自签名证书申请文件 -out private.csr

openssl req -new -key private.key -subj "/C=CN/ST=SiChuan/L=ChengDu/O=ACS/CN=192.168.16.185" -sha256 -out private.csr

4.定义自签名证书扩展文件(解决chrome安全告警)。在默认情况下生成的证书一旦选择信任,在 Edge, Firefox 等浏览器都显示为安全,但是Chrome仍然会标记为不安全并警告拦截,

这是因为 Chrome 需要证书支持扩展 Subject Alternative Name, 因此生成时需要特别指定 SAN 扩展并添加相关参数,将下述内容放到一个文件中,命名为private.ext

vim private.ext
[ req ]
default_bits = 1024
distinguished_name = req_distinguished_name
req_extensions = san
extensions = san
[ req_distinguished_name ]
countryName = CN
stateOrProvinceName = Definesys
localityName = Definesys
organizationName = Definesys
[SAN]
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = IP:192.168.16.185

5.根据根证书私钥及根证书-CA CA-certificate.crt -CAkey CA-private.key、自签名证书申请文件 -in private.csr、自签名证书扩展文件 -extfile private.ext,生成自签名证书 -out private.crt

openssl x509 -req -days 3650 -in private.csr -CA CA-certificate.crt -CAkey CA-private.key -CAcreateserial -sha256 -out private.crt -extfile private.ext -extensions SAN

6.将证书配置到nginx配置文件里

ssl_certificate /etc/nginx/ssl/private.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;

7.把该证书CA-certificate.crt安装到受信任的根证书颁发机构下,即可从谷歌浏览器正常访问https的对应网址且不会报不安全警告。

    安装证书----本地计算机----将所有的证书都放入下列存储----浏览:受信任的根证书颁发机构

posted @ 2022-02-23 17:06  thanksw  阅读(541)  评论(0)    收藏  举报