2.9 KiB
2.9 KiB
本文作者:丁辉
OpenSSL搭建CA证书颁发机构Genpkey
基础环境准备
-
安装 OpenSSL
-
Centos
yum install openssl -y
-
Ubuntu
apt install openssl -y
-
创建根证书颁发机构
-
生成 CA 私钥
openssl genpkey -algorithm RSA -out RootCA.key
-pkeyopt rsa_keygen_bits:4096 -aes256
-
生成 CA 自签名证书
openssl req -key RootCA.key -new -x509 -days 3650 -out RootCA.pem -subj "/C=CN/ST=Beijing/L=Beijing/O=Linux/OU=Linux/CN=*.com"
-subj
:后面跟着的是一个字符串,用于指定证书的主题(Subject)字段。这些字段包含了证书所有者的识别信息,通常用于证书显示和验证过程中。各个字段的意义如下:/C=CN
:国家名称,使用两位国家代码,例如CN
代表中国。/ST=YourState
:州或省份名称,根据你的地理位置填写。/L=YourCity
:城市名称,根据你的地理位置填写。/O=YourOrganization
:组织名称,表示证书所有者所属的公司或组织。/OU=YourOrganizationalUnit
:组织单位名称,是组织内部的一个部门或单位。/CN=YourCommonName
:常用名称,通常是域名或个人的名称。对于根 CA,这里可以是机构的名称或描述。/emailAddress=your.email@example.com
:电子邮件地址,用于联系证书的所有者。
创建并签署子证书(这里演示为泛域名证书)
-
生成子证书密钥
openssl genpkey -algorithm RSA -out wildcard.key
-
创建证书签名请求(CSR)
使用子证书的私钥创建一个 CSR。CSR 包含证书的相关信息。
openssl req -new -key wildcard.key -out wildcard.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Linux/OU=Linux/CN=*.com"
-
使用根证书签署子证书
openssl x509 -req -days 3650 -in wildcard.csr -CA RootCA.pem -CAkey RootCA.key -CAcreateserial -out wildcard.crt -sha256
分发证书
将子证书(server.pem)和根证书(RootCA.pem)分发给需要验证身份的用户或系统。
注意事项:
- 安全性:确保私钥文件(如 RootCA.key 和 server.key)安全存储,避免泄露。
- 有效期:根证书通常具有较长的有效期(如 10 年),而子证书具有较短的有效期(如 1 年)。根据你的安全政策调整这些设置。
- 撤销列表(CRL)和在线证书状态协议(OCSP):为了提高安全性,建立机制以撤销或检查证书的有效性。
这只是创建 CA 和管理证书的基本概念。实际操作中,可能需要考虑更多的安全措施和复杂的配置选项。
openssl pkcs12 -export -out RootCA.pfx -inkey RootCA.key -in RootCA.pem