为阿里云服务器WEB服务部署HTTPS协议

目录

随着人们对网络安全的重视,越来越多的网站启用 HTTPS 协议,并采用 HTTP 严格传输安全协议(HSTS)强制用户使用 HTTPS 协议访问网站。 尽管 HTTPS 协议加密解密需要占用 CPU 资源,但带来的安全收益远远大于资源的消耗。 所以,我也为自己开发一个为单位服务的外网网站部署 HTTPS 协议。

网站托管于阿里云服务器上,并且绑定备案的域名。 阿里云提供证书服务(AliCloud Certificates Service),可以免费在云上签发Symantec证书,并提供一键部署云虚拟机的功能,大大简化证书部署。

在证书服务页面购买证书后,需要在控制台证书界面补全证书的信息,包括域名、申请人信息等。证书界面还提供详细的安装说明,包括如何在 Nginx 等服务器上启动 HTTPS 协议。
我的网站使用 Gunicorn 运行 Python Web 服务,用 Nginx 实现端口转发。配置方法与控制台给出的说明类似。 为实现 HTTP 自动转发到 HTTPS,需要作出一定的修改,使用如下配置:

server {
    listen      80;
    server_name servername.com;
    return 301 https://www.servername.com$request_uri;
}
server {
    listen 443;
    ssl on;
    # 省略
}

当用户访问 HTTP 网页时,会自动跳转到 HTTPS 网页,增强网页的安全性。

后续将尝试部署 HSTS,提高首次访问的安全性。

参考

HSTS

HTTP Strict Transport Security Cheat Sheet