准备一台有openssl环境的主机即可,openssl版本暂时无要求。本次环境采用centeros7.6自带openssl。另外,准备一个nginx。
目录
1准备工作
2证书签发
2.1生成根秘钥
2.2生成根证书
2.2.1根证书格式转换
2.3生成私钥key
2.4生成请求文件
2.5根据root根证书签发服务器证书
2.6nginx配置
使用以下命令创建根密钥masee-key.pem,并使用des3进行加密。密码为:Zict7780#@$sthjj
# 根秘钥生成
openssl genrsa -des3 -out masee-key.pem 4096
使用刚创建好的根密钥 masee-key.pem 生成根证书,并输入相关信息。
# 根据秘钥生成根证书
openssl req -new -x509 -days 3650 -key masee-key.pem -out masee-ca.pem
# 补充完善根证书信息
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:AnHui
Locality Name (eg, city) [Default City]:MaAnShan
Organization Name (eg, company) [Default Company Ltd]:MASEE
Organizational Unit Name (eg, section) []:masee
Common Name (eg, your name or your server's hostname) []:masee.com
Email Address []:[email protected]
# 查看已生成根证书
openssl x509 -text -in masee-ca.pem -noout
客户端请求端需要将该证书安装到本机
将masee-ca.pem格式证书转换成masee-ca.cer
# 根证书格式转换,将pem转换成cer
openssl x509 -inform pem -in masee-ca.pem -outform der -out masee-ca.cer
生成应用程序私钥key,此处可以选择加入密码,也可以选择加入密码,若加入密码,则每次启动服务器都需要使用密码。加密码参考2.1生成根秘钥章节,参数-des3。
# 生成应用服务私钥key
openssl genrsa -out masee-server-key.key 2048
准备openssl.cnf文件,方便执行以下命令时无须追一输入参数。
encrypt_key = no
distinguished_name = CA_DN
req_extensions = v3_req
[CA_DN]
countryName = Country Name (2 letter code)
contryName_default = "CN"
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = "AnHui"
localityName = Locality Name (eg, city)
localityName_default = "MaAnShan"
organizationName = organizationName(eg,company)
organizationName_default = "MASEE"
organizationalUnitName = organizationalUnitName
organizationalUnitName_default = "masee"
commonName = Common Name(e.g. server FQDN or your name)
commonName_default = "www.masee.com"
[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
IP.1 = 127.0.0.1
根据masee-server-key.key秘钥文件生成请求文件。
# 根据2.3生成的秘钥生成请求文件
openssl req -new -out masee-server.csr -key masee-server-key.key -keyform PEM -extensions v3_req -config openssl.cnf
根据2.1、2.2、2.4章节文件,签发服务器证书。
# 根据2.3生成的秘钥生成请求文件
openssl x509 -req -in masee-server.csr -out masee-server-cert.cer -CA masee-ca.pem -CAkey masee-key.pem -CAcreateserial -days 3650 -extensions v3_req -extfile openssl.cnf
server {
listen 443 ssl;
server_name localhost 127.0.0.1;
ssl_certificate masee-server-cert-127.cer;
ssl_certificate_key masee-server-key-127.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
同时将2.2.1根证书格式转换章节中的证书安装到系统受信任的根证书颁发机构中。步骤如下:
第一步:windows电脑运行masee-ca.cer文件,点击“安装证书”。
第二步:选择本地计算机,运行下一页。
第三步:选择“将所有的根证书都放入下列存储”,选择“受信任的根证书颁发机构”。点击下一页执行完成。
完成,效果如下: