按照网上教程折腾一翻,发现签发的证书无法在IOS设备上信任,本篇总结了折腾的经过。

ILO配置

1.创建工作目录

1
2
# 创建本次工作目录,防止与其他文件冲突
cd ~ && mkdir ssl && cd ssl

2.生成根证书配置文件

可以修改 [req_distinguished_name]下的信息,DNS中修改为你的域名

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 = LiYaos House
organizationalUnitName = LiYaos House
[ alternate_names ]
DNS.1 = liyao.house
DNS.2 = *.liyao.house
[SAN]
subjectAltName = @alternate_names
extendedKeyUsage = serverAuth
basicConstraints=CA:TRUE,pathlen:0
EOF

3.生成根证书

subj会是设备上显示的实际名字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# openssl生成根证书
openssl req \
-newkey rsa:2048 \
-x509 \
-nodes \
-keyout rootCA.key \
-new \
-out rootCA.pem \
-subj /CN="LiYao's House" \
-config ./config.cnf \
-reqexts SAN \
-extensions SAN \
-sha256 \
-days 36500

4.获取ilo的csr文件

如图所示,生成需要稍微等待一会,按照提示获取后,保存到ssl/ilo.csr 中,注意旁边有一个导入证书,一会会回来操作。

5.生成ILO所需的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
cat > config.cnf <<EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
[email protected]_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
EOF

这里,证书签发的时间不能超过825天,否则chrome或safari会提示证书不信任:NET::ERR_CERT_VALIDITY_TOO_LONG,意思证书时间过长。

1
openssl x509 -req -in ilo.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ilo.crt -days 824 -sha256 -extfile v3.ext

ilo.crt中的内容,粘贴至刚才ilo管理界面导入证书的入口。等待重启。

MacOS配置

执行open . 打开ssl目录,双击rootCA.pem安装根证书,双击修改证书信任策略为始终信任

退出浏览器重新打开,锁则变为绿色

Iphone设置

需要一个web服务器,我直接用的Pycharm的测试功能。将rootCA.pem放置到任何能通过safari访问到的地址。

访问后添加描述文件,打开设置后信任描述文件。还需要在通用,关于本机,证书信任设置中开启对证书的信任。