2025-05-21 20:50:08
453

如何生成自签名的SSL根证书及私钥?

摘要
本文详细介绍了使用OpenSSL工具生成自签名SSL根证书的完整流程,包含密钥生成、配置文件编写、证书签发、服务器证书衍生及部署验证等关键步骤,适用于构建私有PKI体系的测试环境。...

一、生成根证书私钥

使用OpenSSL工具生成2048位的RSA根证书私钥,该私钥将用于后续证书签名操作:

如何生成自签名的SSL根证书及私钥?

openssl genrsa -out rootCA.key 2048

此命令生成rootCA.key文件,建议设置文件权限为600以防止未授权访问。

二、创建根证书配置文件

新建openssl.cnf文件,定义证书的扩展属性和组织信息:

[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
[ req_distinguished_name ]
C = CN
ST = Shanghai
O = MyOrganization
CN = My Root CA
[ v3_ca ]
basicConstraints = critical,CA:TRUE
示例1:根证书配置文件结构

三、签发自签名根证书

通过以下命令生成有效期10年的自签名根证书:

  1. 执行证书请求命令:
    openssl req -x509 -new -nodes -key rootCA.key -days 3650 -out rootCA.crt -config openssl.cnf
  2. 验证证书信息:
    openssl x509 -in rootCA.crt -text -noout

生成的rootCA.crt需要导入到客户端信任库以实现全局信任。

四、签发服务器证书

使用根证书签发服务器证书的流程:

  • 生成服务器私钥:
    openssl genrsa -out server.key 2048
  • 创建证书签名请求(CSR):
    openssl req -new -key server.key -out server.csr -subj "/CN=example.com"
  • 使用根证书签名:
    openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -days 365

建议在签名时添加subjectAltName扩展以支持多域名。

五、部署与验证

完成后的文件部署步骤:

  1. rootCA.crt导入操作系统信任证书库
  2. 在Web服务器(Nginx/Apache)配置中加载server.crtserver.key
  3. 使用浏览器访问验证证书链完整性

通过openssl verify -CAfile rootCA.crt server.crt命令可验证证书链有效性。

自签名根证书体系适用于内部测试环境,通过规范的密钥管理、清晰的证书扩展定义和严格的部署验证流程,可建立可靠的私有PKI基础设施。但需注意浏览器默认不信任自签名证书,生产环境建议使用权威CA签发的证书。

声明:文章不代表云主机测评网观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
回顶部