OpenSSL是一个功能丰富且自包含的开源安全工具箱,可以用来生成https证书(即SSL证书),也叫自签名证书。但是这种自签名证书只适合内部测试或学习使用,如果是需要给网站一个长久且稳定可靠的安全保障,建议去正规的CA机构申请付费的https证书。
OpenSSL生成https证书的方法:
1、创建密钥
使用openssl工具生成一个RSA私钥
openssl genrsa -des3 -out server.key 2048
2、生成CSR(证书签名请求)
openssl req -new -key server.key -out server.csr
说明:需要依次输入国家,地区,城市,组织,组织单位,Common Name和Email。其中Common Name,可以写自己的名字或者域名,如果要支持https,Common Name应该与域名保持一致,否则会引起浏览器警告。
3、删除密钥中的密码
openssl rsa -in server.key -out server.key
说明:如果不删除密码,在应用加载的时候会出现输入密码进行验证的情况,不方便自动化部署。
4、生成自签名https证书
内部或者测试使用,只要忽略证书提醒就可以了。
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
5、生成pem格式的公钥
有些服务器,需要有pem格式的证书才能正常加载,可以用下面的命令:
openssl x509 -in server.crt -out server.pem -outform PEM
以上就是OpenSSL生成https证书的方法,再次提醒大家一下,自签名证书虽然不要钱,但是不受任何浏览器信任,起不到任何的安全保障作用,只适合用来内部测试或学习使用,可信的https证书建议去国际权威的CA机构(如GeoTrust、Symantec等)申请。