背景:用win10的hosts配本地域名,以centos7.6服务器为例,用openssl生成证书,适用自用网站,自用api,自签证书,ip证书。
用例:假设,我在一台公网IP是192.168.1.1的云服务器部署了一个web,但每次打ip访问不方便,然后自己配一个类域名www.example.cn。该域名只自己用,或者谁用谁修改hosts。
注意:自配的本地域名,目测只能用443端口,其他的会被腾讯云拦截,要求备案,即https://www.example.cn。海外服务器不用理会。
一、配本地域名
win10
1.打开hosts文件
C:\Windows\System32\drivers\etc\
2.右键hosts,点击属性,取消只读
3.记事本打开hosts,最后一行加上
192.168.1.1 www.example.cn
注:保存需要管理员权限才能保存hosts。
二、自签SSL证书并本地信任
centos7.6,切换root权限
1.安装openssl
yum -y install openssl openssl-devel
2.生成带密码的私钥
openssl genrsa -des3 -passout pass:123456 -out server.pass.key 2048
注:
- genrsa 生成RSA私钥
- -des3 des3算法
- -passout 输出密码
- pass 指定密码
- -out server.key 生成的私钥文件名
- 2048 私钥长度
3. 去除私钥的密码
openssl rsa -passin pass:123456 -in server.pass.key -out server.key
rm -f server.pass.key
注:
- rsa 密钥管理
- passin 输入密码
4. 生成证书请求文件
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Guangdong/L=Guangzhou/O=zuzhi/OU=bumen/CN=*.example.cn"
注:
- req 生成证书签名请求
- -new 新生成
- -key 私钥文件
- -out 生成的CSR文件
- -subj 生成CSR证书的参数
/C= 国家
/ST= 省
/L= 城市
/O= 组织或企业
/OU= 部门
/CN= 常用名称
5. 生成证书
openssl x509 -req -days 3650 -in server.csr -signkey server.key -extfile <(printf "subjectAltName=DNS.1:*.example.cn,IP.2:192.168.1.1") -out server.crt
注:
- 一个x509密码学标准,包括csr请求证书文件,key私钥文件,crt证书文件
- days证书有效天数
- extfile指定你的域名,DNS.1:你的域名,IP.2:你的ip,IP.3:第二个ip。可以只要dns或ip其中一个
- server.crt最终的证书文件
6.查看证书
openssl x509 -in server.crt -text -noout
注:查看是否有Subject Alternative Name,且里面的DNS和IP是不是你网站的,匹配则成功。
7.安装证书
7.1 centos
cp server.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust
7.2 win10
-
直接将证书server.crt从centos服务器拉到win10。双击证书–>安装。
-
本地计算机,下一步。
-
选择第二个,浏览,选择受信任,下一步,安装成功
-
重启浏览器再打开网站就能发现自签证书受信任了