由于开发过程中经常遇到使用https进行测试的一个环境,而如果想要一个权威认证的ssl证书又不便宜,而且需要自己拥有域名和服务器、DNS认证等等,如果只是单纯的想要一个https环境作为测试,那么自己生成一个证书就够了,虽然浏览器会有警告,但这不重要,直接点击相信即可。
由CA签署的证书为服务器提供重要的功能:
- 浏览器会自动识别证书并且在不提示用户的情况下允许创建一个安全连接。
- 当一个CA生成一个签署过的证书,它为提供网页给浏览器的组织提供身份担保。
- 多数支持ssl的web服务器都有一个CA列表,它们的证书会被自动接受。当一个浏览器遇到一个其授权CA并不在列表中的证书,浏览器将询问用户是否接受或拒绝连接。
环境
由于我们生成的证书需要用到openssl
及nginx
,请提前准备好。
开始
①建立目录certs,专门用来存放证书和私钥
mkdir certs
下图是我们最后完成的时候在这个目录下产生的文件
②创建配置文件用于生成证书
vim localhost.conf
配置文件内容如下,可自作修改
[ req ]
default_bits = 2048 # RSA的2048是公认较比较安全的key长度
default_keyfile = server-key.pem
distinguished_name = subject
req_extensions = req_ext
x509_extensions = x509_ext
string_mask = utf8only
[ subject ]
countryName = Country Name (2 letter code)
countryName_default = US
stateOrProvinceName = State or Province Nam