新聞中心
一、HTTPS 是什么?

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,都蘭企業(yè)網(wǎng)站建設,都蘭品牌網(wǎng)站建設,網(wǎng)站定制,都蘭網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,都蘭網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
根據(jù)維基百科的解釋:
超文本傳輸安全協(xié)議(縮寫:HTTPS,英語:HypertextTransferProtocolSecure)是超文本傳輸協(xié)議和SSL/TLS的組合,用以提供加密通訊及對網(wǎng)絡服務器身份的鑒定。HTTPS連接經(jīng)常被用于萬維網(wǎng)上的交易支付和企業(yè)信息系統(tǒng)中敏感信息的傳輸。HTTPS不應與在RFC2660中定義的安全超文本傳輸協(xié)議(S-HTTP)相混。
HTTPS 目前已經(jīng)是所有注重隱私和安全的網(wǎng)站的首選,隨著技術的不斷發(fā)展,HTTPS 網(wǎng)站已不再是大型網(wǎng)站的專利,所有普通的個人站長和博客均可以自己動手搭建一個安全的加密的網(wǎng)站。
如果一個網(wǎng)站沒有加密,那么你的所有帳號密碼都是明文傳輸。可想而知,如果涉及到隱私和金融問題,不加密的傳輸是多么可怕的一件事。
鑒于本博客的讀者都是接近專業(yè)人士,我們不再多費口舌,直接進入正題吧。
二、使用 OpenSSL 生成 SSL Key 和 CSR
由于只有瀏覽器或者系統(tǒng)信賴的 CA 才可以讓所有的訪問者通暢的訪問你的加密網(wǎng)站,而不是出現(xiàn)證書錯誤的提示。所以我們跳過自簽證書的步驟,直接開始簽署第三方可信任的 SSL 證書吧。
OpenSSL 在 Linux、OS X 等常規(guī)的系統(tǒng)下默認都安裝了,因為一些安全問題,一般現(xiàn)在的第三方 SSL 證書簽發(fā)機構都要求起碼 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 的命令如下
opensslreq-new-newkeyrsa:2048-sha256-nodes-outexample_com.csr-keyoutexample_com.key-subj"/C=CN/ST=Beijing/L=Beijing/O=ExampleInc./OU=WebSecurity/CN=example.com"
PS:如果是泛域名證書,則應該填寫 *.example.com
你可以在系統(tǒng)的任何地方運行這個命令,會自動在當前目錄生成 example_com.csr 和 example_com.key 這兩個文件
接下來你可以查看一下 example_com.csr,得到類似這么一長串的文字
-----BEGINCERTIFICATEREQUEST-----
MIICujCCAaICAQAwdTELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB0JlaWppbmcxEDAO
BgNVBAcTB0JlaWppbmcxFTATBgNVBAoTDEV4YW1wbGUgSW5jLjEVMBMGA1UECxMM
V2ViIFNlY3VyaXR5MRQwEgYDVQQDEwtleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAPME+nvVCdGN9VWn+vp7JkMoOdpOurYMPvclIbsI
iD7mGN982Ocl22O9wCV/4tL6DpTcXfNX+eWd7CNEKT4i+JYGqllqP3/CojhkemiY
SF3jwncvP6VoST/HsZeMyNB71XwYnxFCGqSyE3QjxmQ9ae38H2LIpCllfd1l7iVp
AX4i2+HvGTHFzb0XnmMLzq4HyVuEIMoYwiZX8hq+kwEAhKpBdfawkOcIRkbOlFew
SEjLyHY+nruXutmQx1d7lzZCxut5Sm5At9al0bf5FOaaJylTEwNEpFkP3L29GtoU
qg1t9Q8WufIfK9vXqQqwg8J1muK7kksnbYcoPnNgPx36kZsCAwEAAaAAMA0GCSqG
SIb3DQEBBQUAA4IBAQCHgIuhpcgrsNwDuW6731/DeVwq2x3ZRqRBuj9/M8oONQen
1QIacBifEMr+Ma+C+wIpt3bHvtXEF8cCAJAR9sQ4Svy7M0w25DwrwaWIjxcf/J8U
audL/029CkAuewFCdBILTRAAeDqxsAsUyiBIGTIT+uqi+EpGG4OlyKK/MF13FxDj
/oKyrSJDtp1Xr9R7iqGCs/Zl5qWmDaLN7/qxBK6vX2R/HLhOK0aKi1ZQ4cZeP7Mr
8EzjDIAko87Nb/aIsFyKrt6Ze3jOF0/vnnpw7pMvhq+folWdTVXddjd9Dpr2x1nc
y5hnop4k6kVRXDjQ4OTduQq4P+SzU4hb41GIQEz4
-----ENDCERTIFICATEREQUEST-----
這個 CSR 文件就是你需要提交給 SSL 認證機構的,當你的域名或組織通過驗證后,認證機構就會頒發(fā)給你一個 example_com.crt
而 example_com.key 是需要用在 Nginx 配置里和 example_com.crt 配合使用的,需要好好保管,千萬別泄露給任何第三方。
三、Nginx 配置 HTTPS 網(wǎng)站以及增加安全的配置
前面已經(jīng)提到,你需要提交 CSR 文件給第三方 SSL 認證機構,通過認證后,他們會頒發(fā)給你一個 CRT 文件,我們命名為 example_com.crt
同時,為了統(tǒng)一,你可以把這三個文件都移動到 /etc/ssl/private/ 目錄。
然后可以修改 Nginx 配置文件
server{
listen80;
listen[::]:80sslipv6only=on;
listen443ssl;
listen[::]:443sslipv6only=on;
server_nameexample.com;
sslon;
ssl_certificate/etc/ssl/private/example_com.crt;
ssl_certificate_key/etc/ssl/private/example_com.key;
}
檢測配置文件沒問題后重新讀取 Nginx 即可
nginx -t && nginx -s reload
但是這么做并不安全,默認是 SHA-1 形式,而現(xiàn)在主流的方案應該都避免 SHA-1.為了確保更強的安全性,我們可以采取迪菲-赫爾曼密鑰交換
首先,進入 /etc/ssl/certs 目錄并生成一個 dhparam.pem
cd/etc/ssl/certs
openssldhparam-outdhparam.pem2048#如果你的機器性能足夠強大,可以用4096位加密
生成完畢后,在 Nginx 的 SSL 配置后面加入
ssl_prefer_server_cipherson;
ssl_dhparam/etc/ssl/certs/dhparam.pem;
ssl_protocolsTLSv1TLSv1.1TLSv1.2;
ssl_ciphers"EECDH+ECDSA+AESGCMEECDH+aRSA+AESGCMEECDH+ECDSA+SHA384EECDH+ECDSA+SHA256EECDH+aRSA+SHA384EECDH+aRSA+SHA256EECDH+aRSA+RC4EECDHEDH+aRSA!aNULL!eNULL!LOW!3DES!MD5!EXP!PSK!SRP!DSS!RC4";
keepalive_timeout70;
ssl_session_cacheshared:SSL:10m;
ssl_session_timeout10m;
同時,如果是全站 HTTPS 并且不考慮 HTTP 的話,可以加入 HSTS 告訴你的瀏覽器本網(wǎng)站全站加密,并且強制用 HTTPS 訪問
add_headerStrict-Transport-Securitymax-age=63072000;
add_headerX-Frame-OptionsDENY;
add_headerX-Content-Type-Optionsnosniff;
同時也可以單獨開一個 Nginx 配置,把 HTTP 的訪問請求都用 301 跳轉到 HTTPS
server{
listen80;
listen[::]:80ipv6only=on;
server_nameexample.com;
return301https://example.com$request_uri;
}
四、可靠的第三方 SSL 簽發(fā)機構
眾所周知,前段時間某 NIC 機構爆出過針對 Google 域名的證書簽發(fā)的丑聞,所以可見選擇一家靠譜的第三方 SSL 簽發(fā)機構是多么的重要。
目前一般市面上針對中小站長和企業(yè)的 SSL 證書頒發(fā)機構有:
StartSSL
Comodo / 子品牌 Positive SSL
GlobalSign / 子品牌 AlphaSSL
GeoTrust / 子品牌 RapidSSL
其中 Postivie SSL、AlphaSSL、RapidSSL 等都是子品牌,一般都是三級四級證書,所以你會需要增加 CA 證書鏈到你的 CRT 文件里。
以 Comodo Positive SSL 為例,需要串聯(lián) CA 證書,假設你的域名是 example.com
那么,串聯(lián)的命令是:
catexample_com.crtCOMODORSADomainValidationSecureServerCA.crtCOMODORSAAddTrustCA.crtAddTrustExternalCARoot.crt>example_com.signed.crt
在 Nginx 配置里使用 example_com.signed.crt 即可
如果是一般常見的 AplhaSSL 泛域名證書,他們是不會發(fā)給你 CA 證書鏈的,那么在你的 CRT 文件后面需要加入 AlphaSSL 的 CA 證書鏈
AlphaSSL Intermediate CA:https://www.alphassl.com/support/install-root-certificate.html
五、針對企業(yè)的 EV SSL
EV SSL,是 Extended Validation 的簡稱,更注重于對企業(yè)網(wǎng)站的安全保護以及嚴格的認證。
最明顯的區(qū)別就是,通常 EV SSL 顯示都是綠色的條,比如本站的 SSL 證書就是 EV SSL。
本文題目:Nginx 配置 SSL 證書 + 搭建 HTTPS 網(wǎng)站教程
轉載源于:http://m.fisionsoft.com.cn/article/djidspd.html


咨詢
建站咨詢
