環境:ubuntu 16.04
OpenSSL 1.0.2g 1 Mar 2016
爲了方便創建10年的證書,如果你需要更長自行修改3650爲自己想要的天數
準備部分
1.創建目錄
mkdir -p /tmp/https_crt && cd /tmp/https_crt
2.創建生成證書時需要的文件夾和文件
mkdir -p ./demoCA/newcerts
touch ./demoCA/index.txt
echo 00 > ./demoCA/serial
- 證書應答文件
cat>https.conf<<EOF
[ req ]
default_bits = 4096
prompt = no
default_md = sha256
distinguished_name = dn
[ dn ]
C = CN
ST = yourstate
L = yourcity
O = yourcommpany
OU = yourcommpany
CN = yourdomain.com
EOF
4.生成CA私鑰
openssl genrsa -out ca.key 4096
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -config https.conf
5.生成證書私鑰
openssl genrsa -out server.pem 4096
6.製作解密後的證書私鑰
openssl rsa -in server.pem -out server.key
7.生成簽名請求
openssl req -new -key server.pem -out server.csr -config https.conf
8.用CA 進行簽名
openssl ca -policy policy_anything -days 3650 -cert ca.crt -keyfile ca.key -in server.csr -out server.crt<<EOF
y
y
EOF