使用OpenSSL创建CA、Service证书的步骤

OpenSSL是SSL、TLS协议的一个实现、开源工具集。OpenSSL可用于密钥、证书管理以及相关测试。

准备目录

mkdir root-ca
cd root-ca
mkdir certs db private
chmod 700 private
touch db/index
openssl rand -hex 16 > db/serial
echo 1001 > db/crlnumber

创建RootCA

root-ca.conf
1
2
3
4
5
# Create CA Private Key
openssl req -new -config root-ca.conf -out root- ca.csr -keyout private/root-ca.key

# CA self-sign
openssl ca -selfsign -config root-ca.conf -in root-ca.csr -out root-ca.crt -extensions ca_ext

二级CA

sub-ca.conf
# 这一步同时生产私钥和csr
openssl req -config sub-ca.conf -new -out sub-ca.csr -keyout private/sub-ca.key

# 用root ca签署sub ca
openssl ca -config root-ca.conf -in sub-ca.csr -out sub-ca.crt -extensions sub_ca_ext    

Service Certificate

openssl genrsa -aes128 -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl ca -config sub-ca.conf -in server.csr -out server.crt -extensions server_ext

Reference:

《OpenSSL攻略》 这篇文档详细介绍了OpenSSL的使用。

更多背景知识可参考:《HTTPS权威指南》