用户在企业内网部署私有CA(SSL证书颁发机构),是建立自主PKI(公钥基础设施)的核心。它能让用户完全掌控内部服务器、设备、应用的身份验证和加密通信。下面我将为用户提供一个清晰、安全、可操作的部署指南。

一、部署前规划

首先,明确你的需求和技术选型:

明确用途:用于哪些场景?(如:Web服务器HTTPS、VPN客户端认证、代码/文档签名、设备认证等)。

选择算法:根CA证书有效期很长,必须使用强加密。RSA  4096位仍是稳妥选择。若追求更优性能和安全,可考虑使用ECC(如secp384r1曲线),这与我们之前讨论的算法趋势一致。

规划结构:绝对不要用根CA直接签发终端证书。应采用分层结构:根CA  ->  中间CA  ->  终端证书。这样做可以隔离风险,即使中间CA私钥泄露,只需吊销该中间CA,而无需动摇整个根CA的信任。

确定有效期:根CA可设为10-20年;中间CA为5-10年;终端证书为1-2年或更短。

二、分步部署指南以下以使用最广泛的工具  OpenSSL  为例,演示部署过程。请先在服务器上安装好OpenSSL。

阶段一:创建最顶层的根CA(Root  CA)

根CA是信任的源头,必须离线生成、严格隔离、妥善保管。

创建目录和配置文件

bash

mkdir  -p  /root/my_private_ca/root/{certs,private,crl,newcerts}

cd  /root/my_private_ca/root

touch  index.txt

echo  1000  >  serial

准备一个OpenSSL配置文件(如  root_openssl.cnf),定义CA的各项参数。

生成根CA的私钥和自签名证书

bash

生成一个强加密的私钥(以RSA  4096为例)

openssl  genrsa  -aes256  -out  private/root_ca.key.pem  4096

生成自签名根证书,有效期20年

openssl  req  -config  root_openssl.cnf  \

            -key  private/root_ca.key.pem  \

            -new  -x509  -days  7300  -sha256  -extensions  v3_ca  \

            -out  certs/root_ca.cert.pem

执行后会要求设置私钥密码和证书信息(国家、组织、通用名等)。通用名建议明确,如“MyCorp  Internal  Root  CA  -  G1”。

安全存放

将  private/root_ca.key.pem(根私钥)离线存储,如存入加密的USB密钥,断开网络连接并锁入保险柜。日常工作绝不使用它。

阶段二:创建用于日常签发的中间CA(Intermediate  CA)

中间CA在线运行,负责签发终端证书。即使私钥泄露,影响范围也有限。

创建中间CA目录结构

bash

mkdir  -p  /root/my_private_ca/intermediate/{certs,private,crl,newcerts,csr}

cd  /root/my_private_ca/intermediate

touch  index.txt

echo  1000  >  serial

生成中间CA的私钥和证书签名请求(CSR)

bash

openssl  genrsa  -aes256  -out  private/intermediate_ca.key.pem  4096

openssl  req  -config  intermediate_openssl.cnf  -new  -sha256  \

            -key  private/intermediate_ca.key.pem  \

            -out  csr/intermediate_ca.csr.pem

用根CA为中间CA证书签名

此步骤需要在根CA的环境下操作(即使用离线保存的根私钥)。


bash

假设已将根CA证书和私钥临时拷入安全环境

openssl  ca  -config  root_openssl.cnf  -extensions  v3_intermediate_ca  \

            -days  3650  -notext  -md  sha256  \

            -in  /path/to/intermediate_ca.csr.pem  \

            -out  intermediate_ca.cert.pem

完成后,将签好的  intermediate_ca.cert.pem  移回中间CA目录的  certs/  下。

形成证书链

bash

cat  certs/intermediate_ca.cert.pem  ../root/certs/root_ca.cert.pem  >  certs/ca-chain.cert.pem

这个  ca-chain.cert.pem  文件至关重要,服务器或客户端在部署时需要它来建立完整的信任链。

阶段三:为内部服务签发终端证书

现在你可以用中间CA为内部服务(如  internal.app.mycorp.com)签发证书了。

生成服务私钥和CSR

bash

openssl  genrsa  -out  private/internal.app.mycorp.com.key.pem  2048

openssl  req  -config  intermediate_openssl.cnf  \

            -key  private/internal.app.mycorp.com.key.pem  \

            -new  -sha256  -out  csr/internal.app.mycorp.com.csr.pem

用中间CA签发证书

bash

openssl  ca  -config  intermediate_openssl.cnf  \

            -extensions  server_cert  -days  825  -notext  -md  sha256  \

            -in  csr/internal.app.mycorp.com.csr.pem  \

            -out  certs/internal.app.mycorp.com.cert.pem

部署证书

将以下文件交给应用服务器(如Nginx):

certs/internal.app.mycorp.com.cert.pem  (终端证书)

private/internal.app.mycorp.com.key.pem  (服务私钥)

certs/ca-chain.cert.pem  (完整的CA证书链)

三、安全与最佳实践

文件权限:所有  .key.pem  私钥文件权限应设为  600,仅限属主读写。CA目录应严格限制访问。

私钥安全:根CA和中间CA的私钥必须用强密码(-aes256)加密保护。

信任根证书:将  root_ca.cert.pem  安全地分发并导入到所有需要信任此私有CA的内部设备、浏览器和操作系统的信任根证书存储区。这是内部服务能被“绿锁”访问的关键。

维护与审计

定期检查  index.txt  查看已签发证书。

如私钥泄露,立即使用  openssl  ca  -revoke  吊销证书,并生成新的证书吊销列表(CRL)或部署OCSP响应器。

建立定期轮换计划,为中间CA和根CA续期(远在过期之前)。

四、与现有架构集成

如果你已部署或计划部署混合云统一管理平台,可以将此私有CA集成进去。许多企业级CLM平台支持接入私有CA作为证书源,实现从申请、自动签发到部署的全流程自动化,这能极大提升你在混合云中管理内部SSL证书的效率。

以上这个方案为用户提供了从零开始搭建私有CA的完整路径。如果用户有更具体的环境细节(例如,主要服务于Windows/Linux服务器,还是Kubernetes集群),我们将可以提供更具针对性的配置或集成建议。