参考文档
参考地址
说明
- 测试用的自签名证书
- 针对
NET::ERR_CERT_COMMON_NAME_INVALID
的报错, 是因为从 Chrome 58 版本后, 证书必须包含Subject Alternative Name
, 才能被认为正确
自签名证书版本
# 生成私钥 -des3 -aes256 加上密码保护
openssl genrsa -out myself.key 2048
# 生成证书请求文件
openssl req -new -key myself.key -out myself.csr
# 生成证书
openssl x509 -req -in myself.csr -signkey myself.key -out myself.crt -sha256 -days 360 -extfile v3.ext
v3.ext
版本一
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = liuende.com
DNS.2 = www.liuende.com
版本二
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = DNS:liuende.com, DNS:liuende.com
一键生成
openssl req -x509 -nodes -newkey rsa:2048 -keyout myself.key -subj "/C=CN/ST=GuangDong/L=GuangZhou/O=LIUENDE COMPANY/OU=SELF/CN=LIUENDE SELF KEY" -out myself.crt -days 360 -sha256 -addext "subjectAltName=DNS:www.liuende.com,DNS:liuende.com"
根证书版本
根证书
# 生成私钥
openssl genrsa -out ca.key 2048
# 生成证书请求文件
openssl req -new -key ca.key -sha256 -days 1024 -out ca.csr
# 生成证书
openssl x509 -req -in ca.csr -days 360 -signkey ca.key -out ca.crt
证书
# 生成 key 和证书请求文件
openssl req -new -nodes -out myself.csr -newkey rsa:2048 -keyout myself.key
# 生成根证书签名的证书
openssl x509 -req -in myself.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out myself.crt -days 365 -sha256 -extfile v3.ext