背景介绍
在实际的业务场景中,大部分web应用对用户提供的访问站点都是基于https协议的url,这样一方面可以很好的规避后期服务器ip地址更换 导致终端用户需要重新更新访问地址,另一方面可以提高数据传输的安全性,基于此我们才想办法对暴露给用户的url尽可能使用https的路由,而ssl证书则是实现https协议的技术手段,如下是生成ssl证书的详细过程
生成证书过程
生成RSA密钥
$openssl genrsa -des3 -out server.pass.key 2048
生成私钥文件
$openssl rsa -in server.pass.key -out myssl-dev.key
生成证书申请文件
$openssl req -new -key myssl-dev.key -out myssl-dev.csr -config csr.conf
其中csr.conf文件内容如下:
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[ dn ]
C = CN
ST = Shanghai
L = Shanghai
O = Test
OU = Test
CN = my.test.net
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = my.test.net
生成证书文件
$openssl x509 -req -in myssl-dev.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out myssl-dev.crt -days 365 -sha256 -extfile cert.conf
其中cert.conf内容如下:
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = my.test.net