OpenSSL自签发CA证书chrome浏览器安全访问

前言


接到这样一个需求:内网通过IP地址访问某系统,需要使用 https,而且不能有不安全的提示,如下图:

1653383297338

不允许这样的情况存在,这就需要使用 openssl 进行自签解决。


OpenSSL 自签证书


安装 openssl

yum install openssl openssl-devel -y
mkdir -pv /etc/ssl/private

使用openssl 生成 SSL key 和 CSR

cd /etc/ssl/private/
openssl req -new -newkey rsa:2048 -sha256 -nodes -out 192.168.199.104.csr -keyout 192.168.199.104.key -subj "/C=CN/ST=Beijing/L=Beijing/O=Super Inc./OU=Web Security/CN=192.168.199.104"

openssl x509 -req -days 365 -in 192.168.199.104.csr -signkey 192.168.199.104.key -out 192.168.199.104.crt

1653384872415


配置nginx支持 ssl

1653384768725

nginx -t
nginx -s reload

chrome 添加信任证书

将上面生成的 192.168.199.104.crt 拷贝到 windows 并导入 chrome

chrome -> 设置 -> 隐私设置和安全性 -> 管理证书 -> 导入

1653385007556


chrome 浏览器导入证书访问:

1653385060532


火狐 浏览器导入证书访问:

1653385228295

因此,这里对 chrome 浏览器需要做特殊的操作:

首先删除之前导入的证书

1653385300834


添加附加用途

解决Chrome不能识别证书通用名称NET::ERR_CERT_COMMON_NAME_INVALID错误

[root@nginx(192.168.199.104) ~]#cd /etc/ssl/private/
[root@nginx(192.168.199.104) /etc/ssl/private]#ls
192.168.199.104.crt  192.168.199.104.csr  192.168.199.104.key
[root@nginx(192.168.199.104) /etc/ssl/private]#rm -rf *

//添加如下文件
[root@nginx(192.168.199.104) /etc/ssl/private]#vim http.ext
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName

[ SubjectAlternativeName ]
IP.1=127.0.0.1
IP.2=192.168.199.104	# 内网访问的IP地址


[root@nginx(192.168.199.104) /etc/ssl/private]#openssl req -new -newkey rsa:2048 -sha256 -nodes -out 192.168.199.104.csr -keyout 192.168.199.104.key -subj "/C=CN/ST=Beijing/L=Beijing/O=Super Inc./OU=Web Security/CN=192.168.199.104"

[root@nginx(192.168.199.104) /etc/ssl/private]#openssl x509 -req -days 365 -in 192.168.199.104.csr -signkey 192.168.199.104.key -out 192.168.199.104.crt -extfile http.ext

然后再次将 192.168.199.104.crt 下载到 window 导入 chrome 。

注意:这里需要重新载入下 nginx,清空下 chrome 的缓存,再次启动。

1653386013219

这样就解决了,chrome 自签ssl证书不安全链接的问题。



总结


(1)chrome 需要添加附属文件

IP地址访问:

[root@nginx(192.168.199.104) /etc/ssl/private]#cat http.ext
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName

[ SubjectAlternativeName ]
IP.1=127.0.0.1
IP.2=192.168.199.104

域名访问:

[root@nginx(192.168.199.104) /etc/ssl/private]#cat http.ext
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
subjectAltName=@SubjectAlternativeName

[ SubjectAlternativeName ]
DNS.1=super.com
DNS.2=www.super.com

(2)两条命令生成证书

openssl req -new -newkey rsa:2048 -sha256 -nodes -out 192.168.199.104.csr -keyout 192.168.199.104.key -subj "/C=CN/ST=Beijing/L=Beijing/O=Super Inc./OU=Web Security/CN=192.168.199.104"

openssl x509 -req -days 365 -in 192.168.199.104.csr -signkey 192.168.199.104.key -out 192.168.199.104.crt -extfile http.ext

(3)将 192.168.199.104.crt 导入到 chrome 受信任的根证书颁发机构

1653386253723

(4)重载 nginx 并清除 chrome 缓存访问。

1653386297761

本文作者:hukey

本文链接:https://www.cnblogs.com/hukey/p/16306560.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   hukey  阅读(6209)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 彩虹 Jay
彩虹 - Jay
00:00 / 00:00
An audio error has occurred.

彩虹 + 轨迹 (Live) - 周杰伦 (Jay Chou)

彩虹

词:周杰伦

曲:周杰伦

哪里有彩虹告诉我

哪里有彩虹告诉我

能不能把我的愿望还给我

能不能把我的愿望还给我

为什么天这么安静

为什么天这么安静

所有的云都跑到我这里

有没有口罩一个给我

有没有口罩一个给我

释怀说了太多就成真不了

释怀说了太多就成真不了

也许时间是一种解药

也许时间是一种解药

也是我现在正服下的毒药

也是我现在正服下的毒药

看不见你的笑 我怎么睡得着

看不见你的笑 我怎么睡得着

你的声音这么近我却抱不到

你的声音这么近我却抱不到

没有地球太阳还是会绕

没有地球太阳还是会绕

没有理由我也能自己走

没有理由我也能自己走

你要离开 我知道很简单

你要离开 我知道很简单

你说依赖 是我们的阻碍

你说依赖 是我们的阻碍

就算放开 但能不能别没收我的爱

就算放开 但能不能别没收我的爱

当作我最后才明白

当作我最后才明白

看不见你的笑 要我怎么睡得着

看不见你的笑 要我怎么睡得着

你的声音这么近我却抱不到

没有地球太阳还是会绕 会绕

没有理由我也能自己走掉

释怀说了太多就成真不了

也许时间是一种解药 解药

也是我现在正服下的毒药

轨迹

词:黄俊郎

曲:周杰伦

我会发着呆然后忘记你

接着紧紧闭上眼

想着哪一天 会有人代替

想着哪一天 会有人代替

让我不再想念你

我会发着呆 然后微微笑

我会发着呆 然后微微笑

接着紧紧闭上眼

又想了一遍 你温柔的脸

又想了一遍 你温柔的脸

在我忘记之前