歡迎訪問完美HTTPS支持的GithubPage我的博客 : https://zggdczfr.cn/ java
最近筆記本掛了送去維修,耽誤了個人學習計劃,就先把月初的一點小技巧發出來充充數……話說,沒了筆記本的日子,看書反而更加認真了~
聽從我2016年10月時,定下的目標:於2017年開始要堅持寫博客。因而,我在GithubPage上搞了個靜態博客網站 https://zggdczfr.cn/ 。做爲一個有個性並略有強迫症的程序猿,確定要給本身的博客弄個我的域名,再配上一把小小的綠鎖頭。
騰訊雲專門爲大學生推出了服務器和我的域名的優惠政策,鑑於這個域名是去年申請的,雖然不是頗有我的特點也只能勉強用着先。git
不過關於最後一點,我不得不吐槽一下」牆」,它致使 Google Analytics 的信息延遲長達一天以上,最後我不得不退而選擇 Baidu Analytics。github
關於這個我就不羅嗦了,網上一大堆教程,分享一篇很是詳細的博客(裏面包括了GithubPage應用自定義域名) : https://xuanwo.org/2015/03/26/hexo-intor/
不過,綁定後咱們只能經過http://域名
來訪問。若是訪問https://XXX.github.io/
(即原來的域名)將會被重定向(302)到咱們的自定義域名。若直接訪問https://域名
,瀏覽器會報SSL_DOMAIN_NOT_MATCHED
警告。瀏覽器
首先,GitHub Pages不支持上傳SSL證書。
CloudFlare 是一家CDN提供商,它提供了免費的https服務(但不是應用SSL證書)。實現模式就是,用戶到CDN服務器的鏈接爲https
,而CDN服務器到GithubPage服務器的鏈接爲http
,就是在CDN服務器那裏加上反向代理。服務器
https
來訪問本身的 GithubPage )。Always use https
設置兩條規則,規則連接分別爲http://域名/*
與http://域名/
(開啓https
強制跳轉)。若是使用國外的評論系統disqus
,這個的確完美支持 https。但,所限於用戶限制,也只能捨棄。
對於國內的評論系統,主要就是友言(有JS文件支持不了HTTPS引用),多說(這個默認屬性並不支持HTTPS但能夠進行改造)。hexo
使用」多說」有一個缺點,他們的服務器不知道爲什麼會偶爾性掛掉。async
多說的評論框雖然提供了https連接,可是其中的一些頭像和表情仍是http的。經過F12,咱們能夠發現多說的embed.js請求頭像和表情的時候用的是http協。可是,這兩個連接自己也支持https協議。 先給個embed.js的官方下載連接 : https://static.duoshuo.com/embed.js
通過漫長的Debug,我終於找到了頭像連接的相應位置。
搜索avatar_url找到頭像連接(展現其中部分代碼),:post
var Z = { userUrl: function(e) { return e.url }, avatarUrl: function(e) { return e.avatar_url || rt.data.default_avatar_url }, loginUrl: function(e, t) {
簡單的字符串替換爲」https」,將其修改成:學習
var Z = { userUrl: function(e) { return e.url }, avatarUrl: function(e) { var s = e.avatar_url || rt.data.default_avatar_url s=s.replace(/http:/g,'https:'); return s }, loginUrl: function(e, t) {
通過Debug,發現傳送的屬性是meaasge,它的上一個屬性是s。最終查了很久以後終於發現了它的位置(這個沒有上一個明顯),搜索s = e.post就能夠找到它的位置(注意等號旁邊的空格)。測試
var t = "", s = e.post, i = e.options, r = s.author;
簡單的字符串替換爲」https」,將其修改成:
var t = "", s = e.post, i = e.options, r = s.author; s.message = s.message.replace(/http:/g,"https:");
這個最簡單了,Debug發現按鈕連接爲」http://img.t.sinajs.cn/t35/style/images/common/face/ext/normal/」 ,在JS文件中將其修改成 https 便可。
以Hexo主題icarus爲例,在themes\icarus\layout\comment
文件夾下找到多說的調用ejs文件。我將上面修改過的JS文件放到了主題的資源JS文件夾,而後在相應的ejs文件中修改調用路徑便可。
ds.async = true; ds.src = '/js/embed.js'; ds.charset = 'UTF-8';
利用hexo命令hexo g && hexo d
,從新將靜態資源pull到Github上。歡迎你們去訪問一下個人我的博客 https://www.zggdczfr.cn/ 。
https引用的圖片一直是略微麻煩的事情。
第一種,是將圖片放到Github上。可是,使用相對路徑引用的話,會出現跳轉頁面時一些圖片路徑會錯誤;使用絕對路徑引用的話,會出現重定向的問題,瀏覽器報302
異常,使瀏覽器上的綠色小鎖頭不見了(不能容忍……)。
第二種,是將圖片放到七牛雲上面,不過註冊用戶每月有流量限制,我擔憂若訪問人數太多(雖然不大可能)會使圖片失效。
第三種,從知乎上找到了支持 https 的圖牀,雖然不知道能使用多久(我如今也就是使用這種)。給個連接 : https://www.tuchuang001.com/
第四種,在本身的私人服務器上搭一個(由於本身的騰訊雲服務器要常常作一些測試,就不選擇放到上面了)。