HTTP 如何分分钟升级到 HTTPS ?

yuanoook
yuanoook 发布于 2016-06-06 11:56:52 浏览:3424 类型:原创 - 随笔 分类:前端安全 - 待整理 二维码: 作者原创 版权保护
HTTP 如何分分钟升级到 HTTPS ?

骗人的,根本不可能分分钟好吗

第一步:nginx 搭配 ssl。
好消息!好消息!https 现在已经有免费的证书资源可用了。
参考 https://www.baidufe.com/item/ed5324e20e555d938ca8.html ,简直良心制作。

第二步:处理网站前端细节。
把所有的静态文件引用,表单提交指向,统统去掉协议名,改成和特定协议无关(可以保证http和https无痛切换)。
引用的第三方的静态资源或者其他服务的,统统也改成和特定协议无关的形式,如果第三方不提供 https 服务,统统干掉。
<style href="//yuanoook.com/static/css/main.css"></style>
<script src="//fe.yuanoook.com/static/js/jquery.plus.min.js"></script>


第三步:后台代吗(如:wordpress)特别处理。
参考原则同上。干掉后台代吗对 https 相关的安全验证,让后台仅仅提供跟协议无关的服务。所有的安全把关,交由 nginx 处理。
wordpress 为例,升级 https 之后, wp-login.php 迷之跳转,总是跳转到自己。
原因: Browser ----https----> Nginx ----intra-proxy----> PHP(wordrepss)。
此时Wordpress 的代码是要做 https 验证的,然而 Nginx 和 PHP(wordpress) 之间不是 https 的,于是就要求 redirect 到 https,浏览器此时就懵逼了,内心是崩溃的 : (
Wordpress 处理方式参考 https://shimo.im/doc/59lBf6oYzP0TWVGV

其他项:websocket 升级到 wss
map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

server {
    listen 7000;

    ssl on;
    ssl_certificate /home/https/ssl/ssl-encrypt.pem;
    ssl_certificate_key /home/https/ssl/domain.key;

    location / {
        proxy_pass http://fly;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}


成果
HTTP 如何分分钟升级到 HTTPS ?

参考链接

https://www.baidufe.com/item/ed5324e20e555d938ca8.html
https://github.com/zxlie/website-ssl.sh
https://shimo.im/doc/59lBf6oYzP0TWVGV
https://letsencrypt.org
标签:
z
给个赞 2 人点赞
收藏 3 人收藏
评论 已有 0 条评论;以下用户言论只代表其个人观点,不代表 前端网(QDFuns) 的观点或立场。
登录 以后才能发表评论
最新评论
还没有任何评论呢,赶紧抢先来一发吧!
yuanoook yuanoook 作者

享受平凡 | 追求卓越

作者最新