按照网上教程折腾一翻,发现签发的证书无法在IOS设备上信任,本篇总结了折腾的经过。
ILO配置
1.创建工作目录
1 2
| cd ~ && mkdir ssl && cd ssl
|
2.生成根证书配置文件
可以修改 [req_distinguished_name]
下的信息,DNS中修改为你的域名,ip每行仅限一个,不支持通配符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| cat > config.cnf <<EOF [ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = SAN extensions = SAN [ req_distinguished_name ] countryName = CN stateOrProvinceName = Beijing localityName = Beijing 0.organizationName = LiYao's House. organizationalUnitName = LiYao Private service [ alternate_names ] DNS.1 = liyao.house DNS.2 = *.liyao.house IP.1 = 192.168.1.1 [SAN] subjectAltName = @alternate_names extendedKeyUsage = serverAuth basicConstraints=CA:TRUE,pathlen:0
|
3.生成根证书
subj会是设备上显示的实际名字
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| openssl req \ -newkey rsa:4096 \ -x509 \ -nodes \ -keyout rootCA.key \ -new \ -out rootCA.pem \ -subj "/emailAddress=liyao@lucat.fun/CN=LiYao's House/C=CN/ST=Beijing/L=Beijing/O=LiYao Inc./OU=LiYao Private Service." \ -config ./config.cnf \ -reqexts SAN \ -extensions SAN \ -sha256 \ -days 36500
|
4.获取csr文件
- 情况一,csr由服务方提供,如:ilo服务需要在他的平台生成csr,登录平台操作
如图所示,生成需要稍微等待一会,按照提示获取后,保存到ssl/ilo.csr
中,注意旁边有一个导入证书,一会会回来操作。
- 情况二,是给nginx或第三方服务生成,这种直接进行自签操作
1 2 3 4 5 6 7 8 9
| openssl genrsa -out client.key 4096
openssl req -new -sha256 \ -key client.key -subj "/emailAddress=liyao@lucat.fun/CN=LiYao's House./C=CN/ST=Beijing/L=Beijing/O=LiYao Inc./OU=LiYao Private Service." \ -config ./config.cnf \ -reqexts SAN \ -extensions SAN \ -sha256 \ -out client.csr
|
5.生成crt文件
首先生成证书配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| cat > client.cnf <<EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName=@alt_names
[ req ] default_bits = 2048 distinguished_name = req_distinguished_name req_extensions = SAN extensions = SAN
[ req_distinguished_name ] countryName = CN stateOrProvinceName = Beijing localityName = Beijing organizationName = LiYao's House
[SAN] subjectAltName = @alt_names extendedKeyUsage = serverAuth basicConstraints=CA:TRUE,pathlen:0
[alt_names] DNS.1 = *.liyao.house DNS.2 = liyao.house IP.1 = 192.168.1.1 EOF
|
这里,证书签发的时间不能超过825天,否则chrome或safari会提示证书不信任:NET::ERR_CERT_VALIDITY_TOO_LONG
,意思证书时间过长。
1 2 3 4 5 6 7 8 9
| openssl x509 -req \ -in client.csr -CA rootCA.pem -CAkey rootCA.key \ -out client.crt \ -CAcreateserial \ -days 824 \ -sha256 \ -extensions SAN \ -extfile client.cnf
|
将ilo.crt
中的内容,粘贴至刚才ilo管理界面导入证书的入口。等待重启。
MacOS配置
执行open .
打开ssl目录,双击rootCA.pem
安装根证书,双击修改证书信任策略为始终信任
退出浏览器重新打开,锁则变为绿色
Iphone设置
使用隔空投送,将rootCA.pem
推送至手机,用QQ,微信好像不行,不支持打开。
- 打开系统设置,点击添加提示,信任描述文件。
- 通用,关于本机下滑到底,证书信任设置中开启对证书的信任。