HTTPS(HyperText Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。可以理解为 HTTPS = HTTP + SSL/TLS,即在HTTP协议基础上加入了加密层,保障了数据传输的安全。
这里只要简单了解,更详细的内容可以查看文章末尾的第一篇参考文章。
要支持HTTPS你需要做两件事,获得一个SSL证书,然后在你的web服务器上安装这个证书。
我的SSL证书是在:FreeSSL首页 - FreeSSL.cn 一个申请免费HTTPS证书的网站,这个网站申请的。
个人的话可以使用免费证书,商用的话可以使用收费的。
具体申请过程就不说了,可以查看FreeSSL给的视频教程:如何使用FreeSSL申请免费证书?
首先确认你的Nginx安装了SSL模块,使用实现下面的命名查看编译选项:
nginx -V
如果发现有ngx_http_ssl_module说明支持SSL,如果没有需要重新编译,具体可以查看文章末尾的第二篇参考文章。
获取好证书后,你会得到两个文件:crt文件和key文件 或者是 pem文件和key文件。把它们上传到你的服务器上,然后打开Nginx配置文件,增加一个server块:
# 配置HTTPS
server {
listen 443 ssl;
server_name example.com;
# SSL设置
ssl_certificate /path/to/xxx.crt 或 /path/to/xxx.pem;
ssl_certificate_key /path/to/xxx.key;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
ssl_session_timeout 5m;
# 其他配置省略
# ...
}
这里只列出了与HTTPS有关的配置,其他配置和普通server一致。
配置好HTTPS后,原来是通过HTTP访问,我们可以修改原来的HTTP配置,让它跳转到新的HTTPS上。
server {
listen 80;
server_name example.com;
# 使用301跳转
return 301 https://$host$request_uri;
# 其他配置省略
# ...
}
配置好了别忘了重启Nginx。
其他服务器的配置方法也可以参考FreeSSL给的例子:如何安装我们的 SSL 证书,IIS、Nginx、Apache、Exchange、Tomcat?
如果配置好了后不能访问,可能源于有:
暂无评论,赶紧发表一下你的看法吧。