本文档适用于个人网站内网域名申请测试

1. 创建Root CA

1.1 创建目录

mkdir -p ~/internal-ca  
cd ~/internal-ca

1.2 生成 Root CA 私钥

openssl genrsa -out rootCA.key 4096

生成"rootCA.key"(十分重要)

1.3 生成 Root CA 根证书

openssl req -x509 -new -nodes -key rootCA.key \
  -sha256 -days 3650 \
  -out rootCA.crt

信息:

Country Name: CN
State or Province Name: Jiangsu
Locality Name: Wuxi
Organization Name: Home Internal CA
Organizational Unit Name: section
Common Name: Internal Root CA
Email Address: 邮箱

生成"rootCA.crt"

2. 签发证书

假设创建网址为:xxx.website.test
IP为114.514.19.810

2.1 创建证书扩展配置文件

nano xxx.website.test.ext

写入

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1 = xxx.website.test
IP.1 = 114.514.19.810

如果想一个证书支持多个域名可以:

[alt_names]
DNS.1 = xxx1.website1.test1
DNS.2 = xxx2.website2.test2
DNS.3 = xxx3.website3.test3
IP.1 = 114.514.19.810

2.2 生成站点私钥

openssl genrsa -out xxx.website.test.key 2048

生成"xxx.website.test.key"

2.3 生成证书请求 CSR

openssl req -new -key xxx.website.test.key -out xxx.website.test.csr

Common Name项填:

xxx.website.test

如果出现:

A challenge password []:

直接回车

2.4 用 Root CA 签发站点证书

openssl x509 -req -in xxx.website.test.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out xxx.website.test.crt -days 3650 -sha256 -extfile xxx.website.test.ext

生成:

xxx.website.test.crt
xxx.website.test.key

crt为证书、key为私钥