内部 CA 证书管理
生成 CA 证书
# 生成 KEY
openssl genrsa -out ca.key 4096
# 生成证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=省/L=市/O=组织/OU=组织单位/CN=常用名(或域名)" \
-key ca.key \
-out ca.crt
导入 CA 证书
内部人员需要把该 ca.crt 证书添加到受信任的根证书中,这样通过改 CA 证书生成的其他证书也会被信任。
Windows
Windows 运行输入 certmgr.msc 然后添加。操作如下图所示:
Linux 导入 CA 证书
# 如果没有 ca-certificates 就安装
yum install -y ca-certificates
# 把 ca.crt 证书放到下面目录
# /etc/pki/ca-trust/source/anchors
# 执行下面命令更新证书
update-ca-trust
# 如果根证书是以 *.pem 结尾,需要转换成crt,然后再执行上述步骤。命令如下:
openssl x509 -in ca.pem -inform PEM -out ca.crt
使用 CA 证书生成其他证书
例如生成泛域名证书:
# 生成 KEY
openssl genrsa -out *.erp.com.key 4096
# 生成证书请求
openssl req -sha512 -new \
-subj "/C=CN/ST=省/L=市/O=组织/OU=组织单位/CN=*.erp.com" \
-key *.erp.com.key \
-out *.erp.com.csr
# 设置证书信息,主要是泛域名时,可以指定额外的 x.com
cat > erp.com.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=*.erp.com
DNS.2=erp.com
EOF
# 使用 CA 证书生成具体的证书
openssl x509 -req -sha512 -days 3650 \
-extfile erp.com.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in *.erp.com.csr \
-out *.erp.com.crt
操作过程中生成的下面两个关键的文件:
- 私钥:
*.erp.com.key
- 公钥:
*.erp.com.crt
网站配置使用上面两个文件即可。