使用OpenSSL创建CA,并基于CA创建证书
生成CA证书
- 生成CA证书的私钥
openssl genrsa -out ca.key 4096
- 生成CA证书
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=MyPersonal Root CA" \
-key ca.key \
-out ca.crt
生成Server证书
证书通常包含一个.crt
文件和.key
文件,例如:wzx.com.crt
和wzx.com.key
。
- 生成私钥
openssl genrsa -out wzx.com.key 4096
- 生成一个证书签署请求
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=wzx.com" \
-key wzx.com.key \
-out wzx.com.csr
- 生成X509 v3扩展文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=wzx.com
DNS.2=wzx
DNS.3=wzx
EOF
- 使用
v3.ext
文件生成证书,这个证书是为应用使用的。
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in wzx.com.csr \
-out wzx.com.crt
CA证书:
ca.crt
,应用的私钥wzx.com.key
,应用的证书wzx.com.crt
。