Open jangdelong opened 4 years ago
升级到 HTTPS 协议的第一步,就是要获得一张证书。 证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,要从经销商购买。
证书可以放在/etc/ssl目录(Linux 系统),然后根据你使用的Web服务器进行配置。
证书配置文件生成器,by Mozilla 配置文件模板,by SSLMate
如果使用 Let's Encrypt 证书,请使用自动安装工具 Certbot。 安装成功后,使用 SSL Labs Server Test 检查一下证书是否生效。
下一步,网页加载的 HTTP 资源,要全部改成 HTTPS 链接。因为加密网页内如果有非加密的资源,浏览器是不会加载那些资源的。
下一步,修改 Web 服务器的配置文件,使用 301 重定向,将 HTTP 协议的访问导向 HTTPS 协议。 Nginx 的写法。
server { listen 80; server_name domain.com www.domain.com; return 301 https://domain.com$request_uri; }
Apache 的写法(.htaccess文件)。
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
5.1 HTTP Strict Transport Security (HSTS)
访问网站时,用户很少直接在地址栏输入https://,总是通过点击链接,或者3xx重定向,从HTTP页面进入HTTPS页面。攻击者完全可以在用户发出HTTP请求时,劫持并篡改该请求。
另一种情况是恶意网站使用自签名证书,冒充另一个网站,这时浏览器会给出警告,但是许多用户会忽略警告继续访问。 "HTTP严格传输安全"(简称 HSTS)的作用,就是强制浏览器只能发出HTTPS请求,并阻止用户接受不安全的证书。
5.2 Cookie
另一个需要注意的地方是,确保浏览器只在使用 HTTPS 时,才发送Cookie。 网站响应头里面,Set-Cookie字段加上Secure标志即可。
Set-Cookie: LSID=DQAAAK...Eaem_vYg; Secure
升级到 HTTPS 协议的第一步,就是要获得一张证书。 证书是一个二进制文件,里面包含经过认证的网站公钥和一些元数据,要从经销商购买。
证书可以放在/etc/ssl目录(Linux 系统),然后根据你使用的Web服务器进行配置。
如果使用 Let's Encrypt 证书,请使用自动安装工具 Certbot。 安装成功后,使用 SSL Labs Server Test 检查一下证书是否生效。
下一步,网页加载的 HTTP 资源,要全部改成 HTTPS 链接。因为加密网页内如果有非加密的资源,浏览器是不会加载那些资源的。
下一步,修改 Web 服务器的配置文件,使用 301 重定向,将 HTTP 协议的访问导向 HTTPS 协议。 Nginx 的写法。
Apache 的写法(.htaccess文件)。
5.1 HTTP Strict Transport Security (HSTS)
访问网站时,用户很少直接在地址栏输入https://,总是通过点击链接,或者3xx重定向,从HTTP页面进入HTTPS页面。攻击者完全可以在用户发出HTTP请求时,劫持并篡改该请求。
另一种情况是恶意网站使用自签名证书,冒充另一个网站,这时浏览器会给出警告,但是许多用户会忽略警告继续访问。 "HTTP严格传输安全"(简称 HSTS)的作用,就是强制浏览器只能发出HTTPS请求,并阻止用户接受不安全的证书。
5.2 Cookie
另一个需要注意的地方是,确保浏览器只在使用 HTTPS 时,才发送Cookie。 网站响应头里面,Set-Cookie字段加上Secure标志即可。