自签发ca证书


文章创建时间: 2025-8-30 8:0 Sat Aug
最后更新时间: 2025-11-29 17:35 Sat Nov
文章总字数: 1278,预计阅读时间需要: 13 分钟

[TOC]

虽然可以申请免费的ssl证书,但是很多时候还是用自己签发ca证书更加的方便.

openssl genrsa -des3 -out ca.key 2048
openssl req -x509 -new -key ca.key -sha256 -days 3650 -out ca.crt -subj "/C=US/ST=California/L=Los Angeles/O=CA/OU=CA/CN=CA"

开始尝试分发该证书,windows导入,效果很完美

忘了截图windows了

忘了截图windows了

下一个进行android分发,和windows一样的流程,在设置里面找到安装ca证书.然后选择即可效果一样不错

忘了截图android

忘了截图android

忘了截图android

最后是linux,这里只展示ubuntu的情况,其他发行版类似

sudo cp ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

使用该ca证书签发一个ssl证书

先准备一个签发ssl的cnf,新建 ssl.cnf 文件,加入以下内容,注意替换信息为自己需要的内容

[ req ]
default_bits       = 2048
prompt             = no
default_md         = sha256
req_extensions     = req_ext
distinguished_name = dn

[ dn ]
C  = UK # Country Name
ST = London # State or Province Name
L  = Westminster # Locality Name
O  = PAOxe # Organization Name
OU = policy all order external # Organizational Unit Name
CN = UK # Common Name

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = a.iaalai.cn # 你需要应用的域名 
DNS.2 = b.iaalai.cn # 可以添加多个域名

接下来就可以使用该cnf文件和之前生成的ca证书来签发ssl证书了,注意其中的路径替换为正确的路径

# 然后生成证书私钥
openssl genrsa -out ssl.key 2048
#  使用该私钥和cnf文件生成证书签名请求
openssl req -new -key ./ssl.key -config ./ssl.cnf -out ssl.csr
# 生成证书签名请求
openssl x509 -req -in ssl.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out ssl.crt -days 277 -extfile ssl.cnf -extensions req_ext