HTTPS 协议是由 SSL + HTTP 协议构建的可进行加密传输、身份认证的网络协议,相对于 HTTP 协议更加安全。最主要还是数据在传输过程中有 SSL 进行加密,让数据变得难以破解,从而提升数据传输时的安全性。细心的人会注意到我们在浏览网站时可能会注意到浏览器的地址栏会有不同的提示。
使用了 https 的站点被标记为是安全的连接 未使用https协议的站点被标记为是不安全的连接所以作为开发人员,应该尽力让项目使用 HTTPS 协议。庆幸的是现在的 SLL 证书可以免费创建,降低了使用门槛。接下来我介绍一下如何配置 HTTPS 以及在使用 HTTP 时强制跳转到 HTTPS。我使用的是 Nginx 服务器,所以就在 Nginx 上进行演示。域名我是在阿里云上购买的,而且阿里提供了免费的 SSL 证书,可以直接去创建,需要的可以去阿里云上了解。在阿里云上创建 SSL 证书后,下载适用于 Nginx 服务器的版本,下载解压后是两个以 .key 和 .pem 结尾的文件, .key文件为私钥文件, .pem文件为证书文件。将 SSL 文件上传到 Nginx 的配置文件的根目录,存放于 cert 目录中(自己创建)。
打开配置文件 /etc/nginx/conf.d/default.conf ,修改为如下配置:
#这里配置监听80端口,我们需要处理http的请求,防止用户通过http协议访问站点报错。
server {
listen 80;
server_name eg.com;
#这里进行处理,将http请求重定向到https请求
return 301 https://$server_name$request_uri;
}
#站点配置,https协议需要监听443端口
server {
listen 443;
server_name eg.com;
#ssl配置
ssl on;
#ssl证书在cert目录中,下面两个配置项参数根据自己的情况设置,我使用了相对路径
ssl_certificate cert/xxxxxxx.pem;
ssl_certificate_key cert/xxxxxxxx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
root /www;
charset utf-8;
location / {
index index.html index.htm index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
OK,配置文件就是这么简单,重新启动 Nginx $ service nginx restart
,使用浏览器访问站点,会使用 HTTPS 协议。在域名前手动加上 http://
进行浏览,发现会自动跳转到https协议。大功告成!
文章同步发布在我的个人博客中,传送门Hesunfly Blog
网友评论