如何生成由独立CA签发的非自签名测试证书及对应CA证书
私有CA签发证书相关问题答复
1 标准同义术语
你描述的这类证书对的标准名称为:私有根CA + 私有CA签发的终端实体证书。
和公网运营的可信CA签发的公网信任证书不同,这类证书仅在你主动将私有根CA导入设备/浏览器的信任根列表后,才会被识别为合法证书,不会触发安全告警。
2 生成操作步骤(基于OpenSSL工具,Windows/macOS/Linux均支持)
所有操作均在命令行执行:
步骤1:生成独立的自签名私有根CA证书
- 生成CA私钥文件:
openssl genrsa -out myTestRootCA.key 2048 - 生成根CA自签名证书(示例有效期设为10年,可自行调整):
openssl req -x509 -new -nodes -key myTestRootCA.key -sha256 -days 3650 -out myTestRootCA.crt
执行时按提示填写信息即可,Common Name可填你自定义的CA名称,其余字段可留空。
步骤2:生成业务证书的密钥和签名请求(CSR)
- 生成业务服务的私钥文件:
openssl genrsa -out myBusinessCert.key 2048 - 生成证书签名请求文件:
openssl req -new -key myBusinessCert.key -out myBusinessCert.csr
执行时Common Name必须填写你测试用的域名(比如local.test)或IP,其余字段可留空,挑战密码字段直接回车留空即可。
步骤3:用私有根CA签发业务证书
- 先新建一个名为
v3.ext的扩展配置文件,内容如下,避免缺少SAN扩展导致现代浏览器告警:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost有其他测试域名/IP可按格式追加,比如:DNS.2 = local.testIP.1 = 192.168.3.4
- 执行签发命令,生成业务证书(示例有效期1年):
openssl x509 -req -in myBusinessCert.csr -CA myTestRootCA.crt -CAkey myTestRootCA.key -CAcreateserial -out myBusinessCert.crt -days 365 -sha256 -extfile v3.ext
生效说明
将生成的myTestRootCA.crt导入到你测试设备的受信任根证书颁发机构列表,或对应浏览器的受信任根证书存储区,之后使用myBusinessCert.crt和myBusinessCert.key部署的服务就不会触发浏览器安全告警。
内容的提问来源于stack exchange,提问作者someone324443
相关产品推荐
相关产品推荐

