警告
本文最后更新于 2022-07-13,文中内容可能已过时。
1. 正文
1.1. 生成 CA 私钥
1
2
3
4
5
6
|
# 此处需要让你设置一个密码(好像可以直接忽略密码,但不晓得怎么操作)
## openssl genrsa -out ca.key 4096
openssl genrsa -des3 -out ca.key 4096
# 移除出私钥密码
openssl rsa -in ca.key -out ca.key
|
1.2. 生成 ca 证书
- subj 参数说明
字段 |
字段含义 |
示例 |
/C= |
Country 国家 |
CN |
/ST= |
State or Province 省 |
Chongqing |
/L= |
Location or City 城市 |
Shapingba |
/O= |
Organization 组织或企业 |
0x5c0f |
/OU= |
Organization Unit 部门 |
ops |
/CN= |
Common Name 域名或IP |
blog.0x5c0f.cc |
1
|
openssl req -utf8 -x509 -new -nodes -key ca.key -sha512 -days 18250 -out ca.pem -subj "/C=CN/ST=CQ/O=0x5c0f/CN=0x5c0f/emailAddress=mail@0x5c0f.cc"
|
1.3. 生成证书私钥
1
|
openssl genrsa -out server.key 4096
|
1.4. 生成域名签名
1
|
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=CQ/O=0x5c0f/CN=0x5c0f.cc/emailAddress=mail@0x5c0f.cc"
|
1.5. 创建扩展
1
2
3
4
5
6
7
8
9
10
11
12
|
cat > server.ext <<EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth, clientAuth, codeSigning
subjectAltName = @alt_names
[alt_names]
DNS.1 = *.0x5c0f.cc
DNS.2 = *.51ac.cc
DNS.3 = localhost
IP.1 = 127.0.0.1
EOF
|
1.6. 生成域名证书
1
|
openssl x509 -req -in server.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out server.crt -days 1825 -sha512 -extfile server.ext
|
1.7. 可信列表添加
1.7.1. linux
https://qastack.cn/unix/90450/adding-a-self-signed-certificate-to-the-trusted-list
1
2
|
sudo cp -v ca.pem /etc/pki/ca-trust/source/anchors/ca.pem
sudo update-ca-trust
|
1.7.2. windows
-
win + R
打开运行窗口, 键入 mmc
然后回车, 选择 文件
-添加/删除单元节点
。选择证书
-添加
,打开选项卡自行判断选择,完成即可。
-
上述完成后,在mmc
控制台中就可以看到证书节点, 展开证书
-受信任的根证书颁发机构
,选择其下面证书
,然后右键 所有任务
-导入
,导入生成的ca.pem
即可,退出时会提示存储控制台的信息,可以忽略