一、HTTPS 是什么?
根據維基百科的解釋:
代碼如下:
超文本傳輸安全協議(縮寫:HTTPS,英語:Hypertext Transfer Protocol Secure)是超文本傳輸協議和SSL/TLS的組合,用以提供加密通訊及對網絡服務器身份的鑒定。HTTPS連接經常被用于萬維網上的交易支付和企業信息系統中敏感信息的傳輸。HTTPS不應與在RFC 2660中定義的安全超文本傳輸協議(S-HTTP)相混。
HTTPS 目前已經是所有注重隱私和安全的網站的首選,隨著技術的不斷發展,HTTPS 網站已不再是大型網站的專利,所有普通的個人站長和博客均可以自己動手搭建一個安全的加密的網站。
如果一個網站沒有加密,那么你的所有帳號密碼都是明文傳輸??上攵?,如果涉及到隱私和金融問題,不加密的傳輸是多么可怕的一件事。
鑒于本博客的讀者都是接近專業人士,我們不再多費口舌,直接進入正題吧。
二、使用 OpenSSL 生成 SSL Key 和 CSR
由于只有瀏覽器或者系統信賴的 CA 才可以讓所有的訪問者通暢的訪問你的加密網站,而不是出現證書錯誤的提示。所以我們跳過自簽證書的步驟,直接開始簽署第三方可信任的 SSL 證書吧。
OpenSSL 在 Linux、OS X 等常規的系統下默認都安裝了,因為一些安全問題,一般現在的第三方 SSL 證書簽發機構都要求起碼 2048 位的 RSA 加密的私鑰。
同時,普通的 SSL 證書認證分兩種形式,一種是 DV(Domain Validated),還有一種是 OV (Organization Validated),前者只需要驗證域名,后者需要驗證你的組織或公司,在安全性方面,肯定是后者要好。
無論你用 DV 還是 OV 生成私鑰,都需要填寫一些基本信息,這里我們假設如下:
域名,也稱為 Common Name,因為特殊的證書不一定是域名:example.com
組織或公司名字(Organization):Example, Inc.
部門(Department):可以不填寫,這里我們寫 Web Security
城市(City):Beijing
省份(State / Province):Beijing
國家(Country):CN
加密強度:2048 位,如果你的機器性能強勁,也可以選擇 4096 位
按照以上信息,使用 OpenSSL 生成 key 和 csr 的命令如下
代碼如下:
openssl req -new -newkey rsa:2048 -sha256 -nodes -out example_com.csr -keyout example_com.key -subj "/C=CN/ST=Beijing/L=Beijing/O=Example Inc./OU=Web Security/CN=example.com"
PS:如果是泛域名證書,則應該填寫 *.example.com
你可以在系統的任何地方運行這個命令,會自動在當前目錄生成 example_com.csr 和 example_com.key 這兩個文件
接下來你可以查看一下 example_com.csr,得到類似這么一長串的文字
代碼如下:
-----BEGIN CERTIFICATE REQUEST-----
MIICujCCAaICAQAwdTELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB0JlaWppbmcxEDAO
BgNVBAcTB0JlaWppbmcxFTATBgNVBAoTDEV4YW1wbGUgSW5jLjEVMBMGA1UECxMM
新聞熱點
疑難解答