Ubuntu下Nginx实现https访问

HTTPS简介

什么是HTTPS?百科是这样解释的。HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。现在它被广泛用于互联网上安全敏感的通讯,例如交易支付等。

使用openssl生成证书

安装openssl

ubuntu14.04默认已经安装

生成ca证书

创建证书目录

mkdir ~/ssl/

拷贝 CA.sh到证书目录

cp /usr/lib//ssl/misc/CA.sh ~/ssl/

生成证书

cd ~/ssl/ && sh CA.sh -newca

根据提示填写信息完成后,在demoCA下会生成证书文件,

其中demoCA/private/cakey.pem为ca证书私钥,demoCA/cacert.pem为ca根证书

生成CA证书

生成服务器证书

生成私钥:        openssl genrsa -des3 -out nginx.key 1024

生成csr文件:   openssl req -new -key nginx.key -out nginx.csr

生成证书&签名:    openssl ca -in nginx.csr -out nginx.crt

生成私钥
生成csr文件
生成证书&签名

注:如果生成证书&签名失败,如下:


QA

修改配置文件~/ssl/demoCA/index.txt.attr

unique_subject = yes改为unique_subject = no

Nginx 配置

虚拟主机监听443端口并配置证书

重启服务,输入密码


Nginx配置


Restart Nginx

效果预览

登录
查看证书

获取免费ssl证书

目前免费证书机构并且被浏览器支持信任的不对,startssl算是一家了,有需要的可以自己去申请,官网网址:https://startssl.com

注意问题

资源文件必须改成https的

简单方法就是所有的资源文件都不要写协议,例如

"http://www.vincentguo.cn/default/info.js"=>"//www.vincentguo.cn/default/info.js",

这样依赖浏览器来自己决定协议是http还是https

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容