新聞中心
一、HTTPS 是什么?

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),都蘭企業(yè)網(wǎng)站建設(shè),都蘭品牌網(wǎng)站建設(shè),網(wǎng)站定制,都蘭網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,都蘭網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
根據(jù)維基百科的解釋:
超文本傳輸安全協(xié)議(縮寫:HTTPS,英語(yǔ):HypertextTransferProtocolSecure)是超文本傳輸協(xié)議和SSL/TLS的組合,用以提供加密通訊及對(duì)網(wǎng)絡(luò)服務(wù)器身份的鑒定。HTTPS連接經(jīng)常被用于萬(wàn)維網(wǎng)上的交易支付和企業(yè)信息系統(tǒng)中敏感信息的傳輸。HTTPS不應(yīng)與在RFC2660中定義的安全超文本傳輸協(xié)議(S-HTTP)相混。
HTTPS 目前已經(jīng)是所有注重隱私和安全的網(wǎng)站的首選,隨著技術(shù)的不斷發(fā)展,HTTPS 網(wǎng)站已不再是大型網(wǎng)站的專利,所有普通的個(gè)人站長(zhǎng)和博客均可以自己動(dòng)手搭建一個(gè)安全的加密的網(wǎng)站。
如果一個(gè)網(wǎng)站沒(méi)有加密,那么你的所有帳號(hào)密碼都是明文傳輸??上攵?,如果涉及到隱私和金融問(wèn)題,不加密的傳輸是多么可怕的一件事。
鑒于本博客的讀者都是接近專業(yè)人士,我們不再多費(fèi)口舌,直接進(jìn)入正題吧。
二、使用 OpenSSL 生成 SSL Key 和 CSR
由于只有瀏覽器或者系統(tǒng)信賴的 CA 才可以讓所有的訪問(wèn)者通暢的訪問(wèn)你的加密網(wǎng)站,而不是出現(xiàn)證書錯(cuò)誤的提示。所以我們跳過(guò)自簽證書的步驟,直接開始簽署第三方可信任的 SSL 證書吧。
OpenSSL 在 Linux、OS X 等常規(guī)的系統(tǒng)下默認(rèn)都安裝了,因?yàn)橐恍┌踩珕?wèn)題,一般現(xiàn)在的第三方 SSL 證書簽發(fā)機(jī)構(gòu)都要求起碼 2048 位的 RSA 加密的私鑰。
同時(shí),普通的 SSL 證書認(rèn)證分兩種形式,一種是 DV(Domain Validated),還有一種是 OV (Organization Validated),前者只需要驗(yàn)證域名,后者需要驗(yàn)證你的組織或公司,在安全性方面,肯定是后者要好。
無(wú)論你用 DV 還是 OV 生成私鑰,都需要填寫一些基本信息,這里我們假設(shè)如下:
域名,也稱為 Common Name,因?yàn)樘厥獾淖C書不一定是域名:example.com
組織或公司名字(Organization):Example, Inc.
部門(Department):可以不填寫,這里我們寫 Web Security
城市(City):Beijing
省份(State / Province):Beijing
國(guó)家(Country):CN
加密強(qiáng)度:2048 位,如果你的機(jī)器性能強(qiáng)勁,也可以選擇 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:如果是泛域名證書,則應(yīng)該填寫 *.example.com
你可以在系統(tǒng)的任何地方運(yùn)行這個(gè)命令,會(huì)自動(dòng)在當(dāng)前目錄生成 example_com.csr 和 example_com.key 這兩個(gè)文件
接下來(lái)你可以查看一下 example_com.csr,得到類似這么一長(zhǎng)串的文字
-----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-----
這個(gè) CSR 文件就是你需要提交給 SSL 認(rèn)證機(jī)構(gòu)的,當(dāng)你的域名或組織通過(guò)驗(yàn)證后,認(rèn)證機(jī)構(gòu)就會(huì)頒發(fā)給你一個(gè) example_com.crt
而 example_com.key 是需要用在 Nginx 配置里和 example_com.crt 配合使用的,需要好好保管,千萬(wàn)別泄露給任何第三方。
三、Nginx 配置 HTTPS 網(wǎng)站以及增加安全的配置
前面已經(jīng)提到,你需要提交 CSR 文件給第三方 SSL 認(rèn)證機(jī)構(gòu),通過(guò)認(rèn)證后,他們會(huì)頒發(fā)給你一個(gè) CRT 文件,我們命名為 example_com.crt
同時(shí),為了統(tǒng)一,你可以把這三個(gè)文件都移動(dò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;
}
檢測(cè)配置文件沒(méi)問(wèn)題后重新讀取 Nginx 即可
nginx -t && nginx -s reload
但是這么做并不安全,默認(rèn)是 SHA-1 形式,而現(xiàn)在主流的方案應(yīng)該都避免 SHA-1.為了確保更強(qiáng)的安全性,我們可以采取迪菲-赫爾曼密鑰交換
首先,進(jìn)入 /etc/ssl/certs 目錄并生成一個(gè) dhparam.pem
cd/etc/ssl/certs
openssldhparam-outdhparam.pem2048#如果你的機(jī)器性能足夠強(qiáng)大,可以用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;
同時(shí),如果是全站 HTTPS 并且不考慮 HTTP 的話,可以加入 HSTS 告訴你的瀏覽器本網(wǎng)站全站加密,并且強(qiáng)制用 HTTPS 訪問(wèn)
add_headerStrict-Transport-Securitymax-age=63072000;
add_headerX-Frame-OptionsDENY;
add_headerX-Content-Type-Optionsnosniff;
同時(shí)也可以單獨(dú)開一個(gè) Nginx 配置,把 HTTP 的訪問(wèn)請(qǐng)求都用 301 跳轉(zhuǎn)到 HTTPS
server{
listen80;
listen[::]:80ipv6only=on;
server_nameexample.com;
return301https://example.com$request_uri;
}
四、可靠的第三方 SSL 簽發(fā)機(jī)構(gòu)
眾所周知,前段時(shí)間某 NIC 機(jī)構(gòu)爆出過(guò)針對(duì) Google 域名的證書簽發(fā)的丑聞,所以可見選擇一家靠譜的第三方 SSL 簽發(fā)機(jī)構(gòu)是多么的重要。
目前一般市面上針對(duì)中小站長(zhǎng)和企業(yè)的 SSL 證書頒發(fā)機(jī)構(gòu)有:
StartSSL
Comodo / 子品牌 Positive SSL
GlobalSign / 子品牌 AlphaSSL
GeoTrust / 子品牌 RapidSSL
其中 Postivie SSL、AlphaSSL、RapidSSL 等都是子品牌,一般都是三級(jí)四級(jí)證書,所以你會(huì)需要增加 CA 證書鏈到你的 CRT 文件里。
以 Comodo Positive SSL 為例,需要串聯(lián) CA 證書,假設(shè)你的域名是 example.com
那么,串聯(lián)的命令是:
catexample_com.crtCOMODORSADomainValidationSecureServerCA.crtCOMODORSAAddTrustCA.crtAddTrustExternalCARoot.crt>example_com.signed.crt
在 Nginx 配置里使用 example_com.signed.crt 即可
如果是一般常見的 AplhaSSL 泛域名證書,他們是不會(huì)發(fā)給你 CA 證書鏈的,那么在你的 CRT 文件后面需要加入 AlphaSSL 的 CA 證書鏈
AlphaSSL Intermediate CA:https://www.alphassl.com/support/install-root-certificate.html
五、針對(duì)企業(yè)的 EV SSL
EV SSL,是 Extended Validation 的簡(jiǎn)稱,更注重于對(duì)企業(yè)網(wǎng)站的安全保護(hù)以及嚴(yán)格的認(rèn)證。
最明顯的區(qū)別就是,通常 EV SSL 顯示都是綠色的條,比如本站的 SSL 證書就是 EV SSL。
網(wǎng)站名稱:Nginx 配置 SSL 證書 + 搭建 HTTPS 網(wǎng)站教程
當(dāng)前路徑:http://www.dlmjj.cn/article/djidspd.html


咨詢
建站咨詢
