本文目录
显示
1.
第一步:生成ca证书
2.
第二步:生成server证书
3.
第三步:将server证书布署到服务器上
3.1.
推荐阅读
域名ssl证书可以自建吗?ssl证书可以自己做吗?答案肯定是可以的,但是自己做的ssl证书是不被浏览器信任的,主要用在本地测试学习。由证书颁发者(ca机构)颁发的ssl证书,ca机构经过了国际webtrust认证和电子签发法许可,这样的证书才能被浏览器信任,而自建的ssl证书往往只是https化,但浏览器依然显示连接不安全。如果觉得各云服务商平台上的免费ssl证书不香,想自己折腾做一个ssl证书,这里老刘博客准备以下教程,使用openssl自签ssl证书用于网站https化,ie和firefox浏览器可以正常安全访问。
这里,我们不探究域名ssl证书实现原理。我们要完成的任务是,自己充当ca机构,然后签出证书供服务器使用。本次教程是在windows实现,实验之前,确认自己的电脑中有openssl程序。如果没有,老刘博客帮你准备了一个:http://download.okcoder.cn/openssl_create.zip。
ucloud免费ssl证书
第一步:生成ca证书
1、创建私钥
openssl genrsa -out ca/ca-key.pem 1024
2、创建证书请求
openssl req -new -out ca/ca-req.csr -key ca/ca-key.pem
3、自签署证书,有效期10年(现在正规ssl证书有效期都是13个月了)
openssl x509 -req -in ca/ca-req.csr -out ca/ca-cert.pem -signkey ca/ca-key.pem -days 3650
4、将证书导出成浏览器支持的.p12格式 (这一步不需要,可以省略)
openssl pkcs12 -export -clcerts -in ca/ca-cert.pem -inkey ca/ca-key.pem -out ca/ca.p12
创建之后,将这个根证书导入浏览器中(受信任的根证书颁发机构):
ie:双击第4步生成的p12证书文件
firefox:选项->隐私与安全 ->证书->查看证书->将ca-cert.pem导入“证书颁发机构”
chrome:“菜单”设置->左上角\”设置\”->高级->隐私设置和安全性->证书管理->受信任的根证书颁发机构->导入ca-cert.pem证书文件
第二步:生成server证书
1、创建私钥
openssl genrsa -out server/server-key.pem 1024
2、创建证书请求
openssl req -new -out server/server-req.csr -key server/server-key.pem
(这一步,common name要填写自己的域名)
3、用自己的ca证书,签署server证书
openssl x509 -req -in server/server-req.csr -out server/server-cert.pem -signkey server/server-key.pem -ca ca/ca-cert.pem -cakey ca/ca-key.pem -cacreateserial -days 3650
4、将证书导出成浏览器支持的.p12格式 (这一步不需要,可以省略)
openssl pkcs12 -export -clcerts -in server/server-cert.pem -inkey server/server-key.pem -out server/server.p12
创建server证书之后,与ca证书合成完整的证书链:
cat server-cert.pem ca-cert.pem > full.pem
第三步:将server证书布署到服务器上
server {
ssl_certificate /path/to/full.pem;
ssl_certificate_key /path/to/server-key.pem;
ssl_prefer_server_ciphers on;
ssl_ciphers high:!anull:!md5;
location ~ .*\\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\\.(js|css)?$
{
expires 1h;
}
}
到这里,openssl自签域名ssl证书可以使用了。
实验结果:ie和firefox都可以正常访问,但是chrome却一直无法识别自签证书(net::err_cert_authority_invalid),如果有实验成功的小伙伴欢迎留言。如果觉得太麻烦可以直接去ucloud云平台免费申请一张域名ssl证书,教程参见《网站启用https:ucloud优刻得免费ssl证书申请与部署流程》。
小程序支付有问题-其他问题windows无法启动flash helper service怎么办?知道吗 过度营销正在赶走你的客户云服务器128g多少钱一台为什么微博最适宜的就是做品牌推广阿里云服务器和linux哪个好用显示器天梯图_显示器排名天梯2020怎么换新的网站域名?域名更换有什么技巧?