• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網絡科技有限公司!
    電話圖標 余先生:13699882642

    網站百科

    為您解碼網站建設的點點滴滴

    Hexo啟用https加密連接

    發表日期:2018-04 文章編輯:小燈 瀏覽次數:4151

    前言

    訪問個人網站,偶爾會跳出廣告,看來網站被運營商劫持了。為了避免這種情況,小編決定對網站進行https加密。早在2015年,美國政府就要求所有聯邦政府網站使用https加密連接,這次小編也算是趕上了國際潮流的尾巴。

    https簡介

    HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。 它是一個URI scheme(抽象標識符體系),句法類同http:體系。用于安全的HTTP數據傳輸。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默認端口及一個加密/身份驗證層(在HTTP與TCP之間)。這個系統的最初研發由網景公司(Netscape)進行,并內置于其瀏覽器Netscape Navigator中,提供了身份驗證與加密通訊方法。現在它被廣泛用于萬維網上安全敏感的通訊,例如交易支付方面。

    配置原理

    https是在http下加入ssl層,那么,怎么加入呢?很簡單,在nginx、apache等web服務器中加入ssl安全證書的配置即可。

    ssl證書申請

    很多網站都提供免費的ssl證書,收集整理如下:

    推薦使用阿里云、騰訊云和七牛,注冊登錄,根據提示填寫信息,不久就可以拿到證書。
    解壓www.voidking.com.zip,可以得到下列文件:

    www.voidking.com │www.voidking.com.csr │ ├─Apache │1_root_bundle.crt │2_www.voidking.com.crt │3_www.voidking.com.key │ ├─IIS │keystorePass.txt │www.voidking.com.pfx │ ├─Nginx │1_www.voidking.com_bundle.crt │2_www.voidking.com.key │ └─Tomcat keystorePass.txt www.voidking.com.jks 

    思路

    gitlab

    github和coding,都不支持上傳ssl證書。但是,gitlab支持啊!最簡單的思路就是,把網站遷到gitlab上。

    按照這個思路,參考《利用gitlab pages和hexo搭建一個個人博客》和《零成本打造安全博客的簡單辦法》。

    1、打開gitlab的項目,Settings,Pages,New Domain,即可進入域名配置頁面。


    image

    2、Domain填入www.voidking.com,Certificate (PEM)填入1_www.voidking.com_bundle.crt中的內容,Key (PEM)填入2_www.voidking.com.key中的內容。

    反向代理

    反向代理是普遍思路,無論我們的真實服務器在github、coding還是gitlab,都可以使用反向代理的方式完成https加密連接。前提是你有一個公網服務器,上面安裝了nginx。

    用戶訪問域名;域名解析到公網IP,訪問到nginx;nginx反向代理到coding等真實服務器,通過http方式拿到頁面;nginx拿到頁面后進行ssl加密,然后返回給用戶加密后的頁面。

    Cloudflare

    Cloudflare是一家CDN提供商,它提供了免費的https服務(但不是應用SSL證書)。實現模式就是,用戶到CDN服務器的連接為https,而CDN服務器到真實服務器的連接為http。也就是說,在CDN服務器那里加上反向代理。沒錯,又是反向代理,只不過這次的代理服務器歸屬于Cloudflare,不是我們自己的。

    這種方式,好處是你不需要擁有自己的公網服務器,壞處是你必須把域名的dns服務器換成cloudflare。

    具體設置步驟參考《讓個人域名下GithubPage完美支持https》。

    詳細步驟

    小編決定選用最通用的方式,通過nginx反向代理來實現https訪問(假設已經申請好了ssl證書)。

    修改域名解析

    原來的域名解析位CNAME記錄,指向pages.coding.me,現在修改為A記錄,指向公網IP。

    上傳證書

    1、服務器上,創建目錄ssl
    mkdir /etc/nginx/ssl

    2、使用xftp上傳 www.voidking.com/Nginx 文件夾中的1_www.voidking.com_bundle.crt和2_www.voidking.com.key到ssl目錄。

    配置nginx

    配置nginx,參考《Nginx開啟SSL與重定向優化》

    1、coding pages配置不變,依然綁定www.voidking.com域名。

    2、/etc/nginx/conf.d中新建配置文件www.voidking.com.conf,內容如下:

    server { listen 80; listen 443 ssl; server_name www.voidking.com; charset utf-8; #ssl配置 ssl_certificate /etc/nginx/ssl/1_www.voidking.com_bundle.crt;ssl_certificate_key/etc/nginx/ssl/2_www.voidking.com.key;ssl_session_timeout5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphersHIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;location / { proxy_set_header Host $host; proxy_set_header X-Real-IP$remote_addr; proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for; client_max_body_size 1024m; client_body_buffer_size128k; client_body_temp_path/var/data/client_body_temp; proxy_connect_timeout90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size4k; proxy_buffers4 32k; proxy_busy_buffers_size64k; proxy_temp_file_write_size 64k; proxy_temp_path/var/data/proxy_temp;proxy_pass http://voidking.coding.me; } } 

    3、重啟nginx
    systemctl restart nginx

    4、測試訪問
    訪問 https://www.voidking.com ,已經可以正常訪問網址,只不過有些腳本是通過http方式引用的,會提示不安全,等下我們修改了hexo主題就好了。

    修改hexo主題

    1、訪問 https://www.voidking.com ,F12,啟用調試模式,查看哪些文件是不安全的。

    2、修改hexo主題,把那些不安全的文件全部修改為https引用。

    jquery

    hexo/themes/yilia/layout/_partial中找到head.ejs,修改jquery引用地址為:

    <script src="https://libs.baidu.com/jquery/1.9.0/jquery.js"></script> 

    mathjax

    《Hexo中使用Mathjax的沖突問題》一文中,我們引用mathjax的方式也是http,引用單位是整個主題(所有的頁面)。下面我們把引用方式修改為https,引用單位改為單個頁面。

    1、把hexo/themes/yilia/layout/_partial中的mathjax.ejs移動到hexo/themes/yilia/layout/_partial/post

    2、修改mathjax.ejs中的js引用:

    <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> 

    3、刪除after-footer.ejs中關于mathjax的引用。

    4、修改hexo/themes/yilia/layout/_partial/article.ejs,在最后添加:

    <% if (!index && post.mathjax){ %> <%- partial('post/mathjax') %> <% } %> 

    5、修改markdown文檔。使用mathjax的文檔,在頭部加上:

    mathjax: true 

    暢言

    hexo/themes/yilia/layout/_partial/post中找到changyan.ejs,其中的兩個js引用,改成https。

    jiathis

    jiathis和baidushare都不提供https方式的引用,所以只能將其本地化(下載所有源碼并修改源碼),或者利用反向代理。實在費勁,小編決定換成overtrue同學的share.js。

    原post/share.ejs為:

    <div class="share"> <!-- JiaThis Button BEGIN --> <div class="jiathis_style"> <span class="jiathis_txt">分享到:</span> <a class="jiathis_button_tsina"></a> <a class="jiathis_button_cqq"></a> <a class="jiathis_button_douban"></a> <a class="jiathis_button_weixin"></a> <a class="jiathis_button_tumblr"></a> <a href="http://www.jiathis.com/share" class="jiathis jiathis_txt jtico jtico_jiathis" target="_blank"></a> </div> <script type="text/javascript" src="https://v3.jiathis.com/code/jia.js?uid=1405949716054953" charset="utf-8"></script> <!-- JiaThis Button END --> </div> 

    修改為:

    <div class="share"> <div class="social-share"></div><!--css & js --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/css/share.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/social-share.js/1.0.16/js/social-share.min.js"></script> </div> 

    源碼分享

    個人yilia地址:https://github.com/voidking/hexo-theme-yilia

    配置nginx進階

    至此,已經可以通過http和https兩種方式訪問 www.voidking.com 了。既然已經有了https,http不妨重定向到https。

    修改www.voidking.com.conf為:

    server { listen 80; server_name www.voidking.com; return 301 https://$server_name$request_uri; }server { # SSL configuration listen 443 ssl; listen [::]:443 ssl; ssl on;server_name www.voidking.com;ssl_certificate /etc/nginx/ssl/1_www.voidking.com_bundle.crt;ssl_certificate_key/etc/nginx/ssl/2_www.voidking.com.key;ssl_session_timeout5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphersHIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM; ssl_prefer_server_ciphers on;location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://voidking.coding.me; } } 

    重啟nginx,訪問 http://www.voidking.com ,會自動跳轉到 https://www.voidking.com ,說明配置成功。

    小結

    這里,我們并沒有配置 voidking.com 和 blog.voidking.com ,可以參照上面的步驟進行配置。但是,更加簡單的配置方式,是在dnspod上配置顯性url,直接跳轉到 http://www.voidking.com 。

    本文主要研究Hexo啟用https加密連接,圍繞hexo來談,最終配置成功。其實,平時建站的時候,也可以給網站啟用https加密連接,原理類似。


    本頁內容由塔燈網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶學習參考,本站不擁有所有權,如您認為本網頁中由涉嫌抄襲的內容,請及時與我們聯系,并提供相關證據,工作人員會在5工作日內聯系您,一經查實,本站立刻刪除侵權內容。本文鏈接:http://www.juherenli.com/20489.html
    相關開發語言
     八年  行業經驗

    多一份參考,總有益處

    聯系深圳網站公司塔燈網絡,免費獲得網站建設方案及報價

    咨詢相關問題或預約面談,可以通過以下方式與我們聯系

    業務熱線:余經理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    • QQ咨詢
    • 在線咨詢
    • 官方微信
    • 聯系電話
      座機0755-29185426
      手機13699882642
    • 預約上門
    • 返回頂部
    国产精品成人观看视频网站| 91久久精品国产成人久久| 在线观看精品国产福利片87| 999国产精品999久久久久久| 国产成人麻豆亚洲综合无码精品| 国产精品无码无片在线观看3D| 亚洲精品在线网站| 亚洲av永久无码精品表情包| 国产福利精品在线观看| 精品久久久久久久免费人妻| 国产精品俺来也在线观看| 久久99热成人精品国产| 亚洲精品午夜无码专区| 国产精品主播一区二区| 国产亚洲精品美女| 国产精品视频永久免费播放| 99久久99久久久精品齐齐| 91精品国产91久久久久久最新| 奇米精品一区二区三区在线观看| 久久精品国产第一区二区| 青青热久久国产久精品| 精品国产三级在线观看| 国产精品久久久久久久久软件 | 国产精品美女久久久| 久久99久久99精品免观看不卡| 日韩精品无码视频一区二区蜜桃| 国产精品亚洲αv天堂无码| 高清在线亚洲精品国产二区| 国产精品模特hd在线| 无码aⅴ精品一区二区三区| 无码日韩精品一区二区免费| 美国发布站精品视频| 精品国产鲁一鲁一区二区| 久久久久女人精品毛片| 久久综合国产乱子伦精品免费| 久久精品aⅴ无码中文字字幕| 久久精品国产精品亚洲精品| 久久夜色精品国产亚洲| 国产精品久久久久久吹潮| 亚洲av无码乱码国产精品fc2| 亚洲AV无码精品色午夜在线观看|