一、Nginx訪問自簽ssl證書存在https報不安全告警
nginx代理設(shè)置自簽ssl證書并進行https方式訪問,瀏覽器中會報不安全的告警,記錄一下處理過程
本文內(nèi)容摘自CSDN博主「Dylanu」的原創(chuàng)文章 解決https網(wǎng)站通過nginx+openssl自簽名證書訪問,在谷歌瀏覽器報不安全告警的問題
二、處理步驟
1.生成根證書私鑰和根證書
使用指定-subj “/C=CN/ST=MyProvince/L=MyCity/O=MyOrganization”,生成根證書私鑰和根證書
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -subj "/C=CN/ST=MyProvince/L=MyCity/O=MyOrganization" -keyout CA-private.key -out CA-certificate.crt -reqexts v3_req -extensions v3_ca
###示例:生成100年的
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -subj "/C=CN/ST=guangdong/L=guangzhou/O=gzsendi" -keyout CA-private.key -out CA-certificate.crt -reqexts v3_req -extensions v3_ca
2.生成自簽名證書私鑰 -out private.key
openssl genrsa -out private.key 2048
###示例:
openssl genrsa -out private.key 2048
3.根據(jù)自簽名證書私鑰生成自簽名證書申請文件 -out private.csr
####命令:
openssl req -new -key private.key -subj "/C=CN/ST=MyProvince/L=MyCity/O=MyOrganization/CN=192.168.56.101" -sha256 -out private.csr
###示例:
openssl req -new -key private.key -subj "/C=CN/ST=guangdong/L=guangzhou/O=gzsendi/CN=192.168.56.101" -sha256 -out private.csr
4.定義自簽名證書擴展文件(解決chrome安全告警)
定義自簽名證書擴展文件(解決chrome安全告警)。在默認情況下生成的證書一旦選擇信任,在 Edge, Firefox 等瀏覽器都顯示為安全,但是Chrome仍然會標記為不安全并警告攔截,這是因為 Chrome 需要證書支持擴展 Subject Alternative Name, 因此生成時需要特別指定 SAN 擴展并添加相關(guān)參數(shù),將下述內(nèi)容放到一個文件中,命名為private.ext
cat > private.ext << EOF
[ 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.56.101
EOF
5.生成自簽名證書 -out private.crt
根據(jù)根證書私鑰及根證書-CA CA-certificate.crt -CAkey CA-private.key、自簽名證書申請文件 -in private.csr、自簽名證書擴展文件 -extfile private.ext,生成自簽名證書 -out private.crt
##命令,設(shè)置100年的證書有效期
openssl x509 -req -days 36500 -in private.csr -CA CA-certificate.crt -CAkey CA-private.key -CAcreateserial -sha256 -out private.crt -extfile private.ext -extensions SAN
6.配置nginx
將上面生成的private.crt和private.key放在nginx下的ssl目錄(ssl可以自己建立,然后放置對應(yīng)的文件)。文章來源:http://www.zghlxwxcb.cn/news/detail-438448.html
示例如:文章來源地址http://www.zghlxwxcb.cn/news/detail-438448.html
server {
listen 8443 ssl;
server_name localhost;
ssl_certificate /home/testuser/nginx/ssl/private.crt;
ssl_certificate_key /home/testuser/nginx/ssl/private.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_connect_timeout 30;
proxy_http_version 1.1;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_set_header Host $host:$server_port;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
7.把該證書CA-certificate.crt安裝到受信任的根證書頒發(fā)機構(gòu)下,即可從瀏覽器正常訪問https的對應(yīng)網(wǎng)址且不會報不安全警告。
到了這里,關(guān)于Nginx解決通過openssl自簽名證書訪問Https報不安全告警的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!