给你的网站穿上外衣 - HTTPS 免费部署指南 8090安适门户
跟着国内各大网站纷纷开启全站 HTTPS 时代,HTTPS 已不再是付出等敏感操纵过程的专属,开启 HTTPS 对付小我私家网站或者小型网站也不再遥不成及。 今天博主就以本身的网站 为例叙述一下为本身网站点亮 HTTPS 小绿锁的过程。
HTTP 和 HTTPSHTTPS( Hypertext Transfer Protocol over Secure Socket Layer ),是以安适为方针的 HTTP 通道,简单讲是 HTTP 的安适版。即 HTTP 下插手 SSL 层,HTTPS 的安适根本是 SSL ,因此加密的详细内容就需要 SSL 。 它是一个 URI scheme( 抽象标识符体系 ),句法类同 http :体系。用于安适的 HTTP 数据传输。 https:URL 表白它使用了 HTTP,但 HTTPS 存在差别于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP 与 TCP 之间)。这个系统的最初研发由网景公司进行,供给了身份验证与加密通讯要领,此刻它被广泛用于万维网上安适敏感的通讯,例如交易付出方面。
HTTP 超文本传输协议 ( HTTP-Hypertext transfer protocol ) 是一种详细规定了浏览器和万维网处事器之间互相通信的法则,通过因特网传送万维网文档的数据传送协议。
从观点里可以看到,要开启 HTTPS 至关重要的一点就是 ssl 层的身份验证,而身份验证需要用到 ssl 证书,以前少有免费 ssl 证书,所以小站根基不会选择 https ,而此刻网上供给小我私家免费 ssl 证书的机构越来越多,这使得免费升级站点为 https 成为可能。
1. 申请 SSL 证书网上已经有不少机构供给小我私家免费 ssl 证书,有效期几个月到几年不等,博主使用的是 StartSSL, 申请告成后有效期 3 年,到期后可免费续租。 具体申请过程不庞大,注册后按照提示验证网站 + 生成证书即可,如果不清楚可以 Google 一下。
要注意 StartSSL 验证网站拥有者时是给域名所有者的邮箱发验证邮件,如果域名开启了隐私掩护请暂时封锁。
然后在本身处事器中生成 SSL 证书的 csr ,记住生成输入的奥秘,之后要用到:
openssl req -new -sha256 -key rapospectre.com_secure.key -out rapospectre.com.csr假设以上文件生成在 /var/tmp 文件夹下
在 StartSSL 填写 csr 文件内容,生成 SSL 证书并下载, 生成成就后如图:
点击 Retrieve 下载证书,解压缩后包罗各类处事器的 crt ,博主使用 nginx 做反代,所以选择 nginxserver 解压缩后得到 将此文件上传随处事器,假设传到 /var/tmp/ 文件夹
2. 配置处事器以 nginx 为例,打开 /etc/nginx/nginx.conf,插手配置:
server { listen 443 ssl; ssl_certificate /var/tmp/www.rapospectre.com_bundle.crt; ssl_certificate_key /var/tmp/rapospectre.com_secure.key; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #选择特定的加密方法, 制止已知的缝隙 ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !MD5 !EXP !DSS !PSK !SRP !kECDH !CAMELLIA !RC4 !SEED'; #让浏览器记住直接访谒 https 的网址, 不再去 http 重定向。 add_header Strict-Transport-Security 'max-age=31536000; preload'; add_header X-Frame-Options DENY; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; keepalive_timeout 70; ssl_dhparam /var/tmp/dhparam2048.pem; #禁止处事器自动解析资源类型 add_header X-Content-Type-Options nosniff; #防XSS攻擊 add_header X-Xss-Protection 1; server_name rapospectre.com;在之前的 80 端口进行重定向配置:
server { listen 80; server_name rapospectre.com ; return 301 https://www.rapospectre.com$request_uri; } 3. HTTP 替换将网站所有以 http 方法获取的资源全部改为 https 方法或自动方法获取, eg:
<script src="http://xx.cdn.com/jquery.js"></script> 改为 <script src="http://www.8090-sec.com/archives/3907/https:/xx.cdn.com/jquery.js"></script> 或 <script src="http://www.8090-sec.com/xx.cdn.com/jquery.js"></script>重启处事器,提示输入之前生成 csr 的暗码,输入暗码,重启告成,访谒 https://www.rapospectre.com 可以看到 HTTPS 已经正常事情!
顺手来一发 SSLLABS测试,wtf 只有 F?
看图发明因为
This server is vulnerable to the OpenSSL Padding Oracle vulunerability ( CVE-2016-2107 )
本来是 OpenSSL 缝隙的锅,升级 OpenSSL 到 1.0.2h 版 ( 后续版本应该也可以,博主一开始升级到了最新的 1.1.0a 功效处事器挂了 ) 即可修复缝隙:
温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/pc/12524.html