顯示具有 SSL 標籤的文章。 顯示所有文章
顯示具有 SSL 標籤的文章。 顯示所有文章

2017年2月27日 星期一

Cpanel 安裝CloudFlare SSL 憑證授權組合: (CABUNDLE)

環境參數:

  • cPanel 版本: 62.0 (build 15)
  • SSL:CloudFlare 免費

申請了 CloudFlare 免費提供的SSL憑証後,除了放在自己主機外,也可以放在代管空間。
除了上傳 Certificate 和 Private Key外,還需要上傳 Original CA。

在 Cpanel SSL主機設定加上root ca

enter image description here

下載 root ca

直接下載 CloudFlare 準備好的 root ca 檔後,再貼入憑証授權組合 (CABUNDLE)欄位即可。
* cloudflare_origin_ecc.pem (940 Bytes)
* cloudflare_origin_rsa.pem (1 KB)
一般的SSL設定會用到的是 RSA Root(cloudflare_origin_rsa.pem),

Cloudflare Origin CA — RSA Root
-----BEGIN CERTIFICATE-----
MIID/DCCAuagAwIBAgIID+rOSdTGfGcwCwYJKoZIhvcNAQELMIGLMQswCQYDVQQG
EwJVUzEZMBcGA1UEChMQQ2xvdWRGbGFyZSwgSW5jLjE0MDIGA1UECxMrQ2xvdWRG
bGFyZSBPcmlnaW4gU1NMIENlcnRpZmljYXRlIEF1dGhvcml0eTEWMBQGA1UEBxMN
U2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZvcm5pYTAeFw0xNDExMTMyMDM4
NTBaFw0xOTExMTQwMTQzNTBaMIGLMQswCQYDVQQGEwJVUzEZMBcGA1UEChMQQ2xv
dWRGbGFyZSwgSW5jLjE0MDIGA1UECxMrQ2xvdWRGbGFyZSBPcmlnaW4gU1NMIENl
cnRpZmljYXRlIEF1dGhvcml0eTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzETMBEG
A1UECBMKQ2FsaWZvcm5pYTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AMBIlWf1KEKR5hbB75OYrAcUXobpD/AxvSYRXr91mbRu+lqE7YbyyRUShQh15lem
ef+umeEtPZoLFLhcLyczJxOhI+siLGDQm/a/UDkWvAXYa5DZ+pHU5ct5nZ8pGzqJ
p8G1Hy5RMVYDXZT9F6EaHjMG0OOffH6Ih25TtgfyyrjXycwDH0u6GXt+G/rywcqz
/9W4Aki3XNQMUHNQAtBLEEIYHMkyTYJxuL2tXO6ID5cCsoWw8meHufTeZW2DyUpl
yP3AHt4149RQSyWZMJ6AyntL9d8Xhfpxd9rJkh9Kge2iV9rQTFuE1rRT5s7OSJcK
xUsklgHcGHYMcNfNMilNHb8CAwEAAaNmMGQwDgYDVR0PAQH/BAQDAgAGMBIGA1Ud
EwEB/wQIMAYBAf8CAQIwHQYDVR0OBBYEFCToU1ddfDRAh6nrlNu64RZ4/CmkMB8G
A1UdIwQYMBaAFCToU1ddfDRAh6nrlNu64RZ4/CmkMAsGCSqGSIb3DQEBCwOCAQEA
cQDBVAoRrhhsGegsSFsv1w8v27zzHKaJNv6ffLGIRvXK8VKKK0gKXh2zQtN9SnaD
gYNe7Pr4C3I8ooYKRJJWLsmEHdGdnYYmj0OJfGrfQf6MLIc/11bQhLepZTxdhFYh
QGgDl6gRmb8aDwk7Q92BPvek5nMzaWlP82ixavvYI+okoSY8pwdcVKobx6rWzMWz
ZEC9M6H3F0dDYE23XcCFIdgNSAmmGyXPBstOe0aAJXwJTxOEPn36VWr0PKIQJy5Y
4o1wpMpqCOIwWc8J9REV/REzN6Z1LXImdUgXIXOwrz56gKUJzPejtBQyIGj0mveX
Fu6q54beR89jDc+oABmOgg==
-----END CERTIFICATE-----
參考來源

2017年2月12日 星期日

申請免費的Cloudflare SSL搭架Lighttpd Proxy為網站加密

enter image description here

環境參數:

  • 前端:lighttpd-1.4.41
    • Hostname:SRV1
    • IP:10.11.11.1
  • 後端:lighttpd-1.4.41
    • Hostname:Srv2
    • IP:10.11.11.2
  • 加密網址:domain.com.tw

前後端都利用 Lighttpd 來達成 SSL Reverse Proxy目的。

Created with Raphaël 2.1.2架構概念圖domain.com.tw(SRV1前端Lighttpd)domain.com.tw(SRV1前端Lighttpd)domain.com.tw(SRV2後端Lighttpd)domain.com.tw(SRV2後端Lighttpd)-> 透過Lighttpd proxy

製作主機憑証

依序製作好rootca.key、rootca.req及rootca.crt,先搞懂req(申請書,即request)及crt(証書,即Certificate),才不會延伸檔名一大堆,保証搞到錯亂。
主機歸主機,就是一台機器;伺服器是Apache、Nginx或Lighttpd。

如何製作主機憑証教學

非常仔細的教學,照著作即可
準備好這3個檔案才能進行CloudFlare提供的免費SSL服務。

Created with Raphaël 2.1.2a1.自建最高憑証主機→/etc/ssl/rootca.keya2.向自己提出申請→/etc/ssl/rootca.reqa3.得到了主機証書→/etc/ssl/rootca.crtb1.產生伺服器憑証→/etc/ssl/domain.com.tw.keyb2. 製作伺服器申請書→/etc/ssl/domain.com.tw.reqb3.得到伺服器証書→/etc/ssl/domain.com.tw.crt轉移NS至CloudFlare代管向CloudFlare申請SSL設定前端SRV1設定後端SRV1完成

Key(私鑰)、Req(申請書)及Crt(憑証証書) 檔名概要

檔案名稱 功能意義
主機憑証 /etc/ssl/rootca.key a1 在自己Server產生的 Private Key,自己就是最高憑証中心
/etc/ssl/rootca.req a2 要向憑証中心提出申請的檔案
/etc/ssl/rootca.crt a3 憑証中心所簽發簽發的憑證
伺服器憑証 /etc/ssl/domain.com.tw.key b1 以網址為準則所產生的憑証
/etc/ssl/domain.com.tw.req b2 伺服器要向憑証中心提出申請的檔案
/etc/ssl/domain.com.tw.crt b3 憑証中心所簽發簽發給伺服器的憑證

完成了這些步驟,就可以啟用SSL加密,不過是非經認可的加 ,自己在家裡試驗即可。若要應用在公開的網站,那麼就要經權威認証機構簽發給您Crt,才能獲得來訪網站者的信任。
SSL憑証服務商有很多選擇,在此不贅述,只介紹免費的CloudFalre。

申請CloudFlare免費的SSL

變更NS由CloudFlare代管

要免費的SSL服務,就先得將Domain Name的NS指向到CloudFlare,申請CloudFlare帳號後,按照說明即可很輕鬆的將網域轉入,交由CloudFlare代管。

上傳申請書

在製作SSL過程 b2中會得到domain.com.tw.req申請書,直接把內容向CloudFlare提出申請即可,只要在這裡上傳後,SSL簽發憑証手續更完成。
enter image description here
CloudFlare也提供了自動產生req及crt的機制,也可以參照使用,不過在此還是使用我們自己辛苦做的吧!
enter image description here
不過,經由CloudFlare得到的免費SSL憑証,其實並非全程加密,如果是商業網站,還是乖乖的提撥費用向認証機構申請方為妥當。
CloudFlare既然代管了您的網址,那麼所有的流量會先指向到CloudFlare的IP,再轉向到您的主機,有此概念後,再進行主機設定就順利多了。

下載証書

上傳申請書後,立即下戴cloudflare的証書檔案存成 /usr/local/etc/lighttpd/ssl/domain.com.tw.crt。

關於domain.com.tw.crt

仔細看看,到此為止共出現了2個domain.com.tw.crt証書,一個是我們自行簽發的 /etc/ssl/domain.com.tw.crt,這只能在家裡用。要公開就得使用由CloudFlare發給的crt檔案才行。

Created with Raphaël 2.1.2以訪客的角度來看訪客訪客CloudFlareCloudFlare主機SRV1+SRV2主機SRV1+SRV2真正SSL經認証加密只有這段CDN機制這段是沒有認証加密的(私人加密)

設定伺服器

以Lighttpd mod_proxy的方式,由前端SRV1當防護主機,再將真正的流量導到內部的SRV2。

準備 pem 檔案

Lighttpd要執行ssl加密設定,要準備好pem檔案:

cat /etc/ssl/domain.com.tw.key  /usr/local/etc/lighttpd/ssl/domain.com.tw.crt > /usr/local/etc/lighttpd/ssl/domain.com.tw.pem

domain.com.tw.pem要同時存放在SRV1及SRV2主機中。

前端SRV1(Lighttpd)

由於要與CloudFlare接口,所以自己的第一台主機SRV1端口要設定為HTTP 80,再跳轉SRV2的HTTP 443。

$ sudo vi /usr/local/etc/lighttpd/lighttpd.conf
## domain.com.tw
##______________________________
  $HTTP["host"] == "domain.com.tw" {
  ssl.engine  = "enable"
  ssl.pemfile = "/usr/local/etc/lighttpd/ssl/domain.com.tw.pem"
  # Proxy to SRV2:10.11.11.2
  proxy.server = ( "" =>((
               "host" => "10.11.11.2",
               "port" => 443
               )))
  }
}
$ sudo /usr/local/etc/rc.d/lighttpd restart

如果前端喜歡用Apache,那參考以下設定:

<VirtualHost *:80>
    ServerName domain.com.tw
    SSLEngine on
    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNUL
    SSLCertificateFile /usr/local/etc/ssl/domain.com.tw.crt
    SSLCertificateKeyFile /usr/local/etc/ssl/domain.com.tw.key
    SSLCertificateChainFile /usr/local/etc/apache24/ssl/1_root_bundle.crt
    ProxyPass    /  https://10.11.11.2/
    ErrorLog "/var/logs/domain.com.tw-error.log"
    CustomLog "/var/logs/domain.com.tw-access.log" combined
  <Proxy *>
    Order Allow,Deny
    Allow from all
  </Proxy>
</VirtualHost>

後端SRV2

$ sudo vi /usr/local/lighttpd/lighttpd.conf
$SERVER["socket"] == "10.11.11.2:443" {
    ssl.engine  = "enable" 
    ssl.pemfile = "/usr/local/etc/lighttpd/ssl/domain.com.tw.pem"
    server.document-root = "/htdocs/domain.com.tw"
}
$ sudo /usr/local/etc/rc.d/lighttpd restart

若想直接在第一台主機SRV1運行https機制,那麼就將後端SRV2的lighttpd設定複製到SRV1即可。

恭喜,大功告成了!訪問 https://domain.com.tw,享受成果。

本文大網