欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nginx+SSL搭建 HTTPS 網(wǎng)站

 更新時間:2016年08月24日 16:57:16   投稿:hebedich  
最近在研究nginx,整好遇到一個需求就是希望服務(wù)器與客戶端之間傳輸內(nèi)容是加密的,防止中間監(jiān)聽泄露信息,但是去證書服務(wù)商那邊申請證書又不合算,因為訪問服務(wù)器的都是內(nèi)部人士,所以自己給自己頒發(fā)證書,忽略掉瀏覽器的不信任警報即可。下面是頒發(fā)證書和配置過程。

一、HTTPS 是什么?

根據(jù)維基百科的解釋:

復(fù)制代碼 代碼如下:

超文本傳輸安全協(xié)議(縮寫:HTTPS,英語:Hypertext Transfer Protocol Secure)是超文本傳輸協(xié)議和SSL/TLS的組合,用以提供加密通訊及對網(wǎng)絡(luò)服務(wù)器身份的鑒定。HTTPS連接經(jīng)常被用于萬維網(wǎng)上的交易支付和企業(yè)信息系統(tǒng)中敏感信息的傳輸。HTTPS不應(yīng)與在RFC 2660中定義的安全超文本傳輸協(xié)議(S-HTTP)相混。
HTTPS 目前已經(jīng)是所有注重隱私和安全的網(wǎng)站的首選,隨著技術(shù)的不斷發(fā)展,HTTPS 網(wǎng)站已不再是大型網(wǎng)站的專利,所有普通的個人站長和博客均可以自己動手搭建一個安全的加密的網(wǎng)站。

如果一個網(wǎng)站沒有加密,那么你的所有帳號密碼都是明文傳輸??上攵?,如果涉及到隱私和金融問題,不加密的傳輸是多么可怕的一件事。

鑒于本博客的讀者都是接近專業(yè)人士,我們不再多費(fèi)口舌,直接進(jìn)入正題吧。

二、使用 OpenSSL 生成 SSL Key 和 CSR

由于只有瀏覽器或者系統(tǒng)信賴的 CA 才可以讓所有的訪問者通暢的訪問你的加密網(wǎng)站,而不是出現(xiàn)證書錯誤的提示。所以我們跳過自簽證書的步驟,直接開始簽署第三方可信任的 SSL 證書吧。

OpenSSL 在 Linux、OS X 等常規(guī)的系統(tǒng)下默認(rèn)都安裝了,因為一些安全問題,一般現(xiàn)在的第三方 SSL 證書簽發(fā)機(jī)構(gòu)都要求起碼 2048 位的 RSA 加密的私鑰。

同時,普通的 SSL 證書認(rèn)證分兩種形式,一種是 DV(Domain Validated),還有一種是 OV (Organization Validated),前者只需要驗證域名,后者需要驗證你的組織或公司,在安全性方面,肯定是后者要好。

無論你用 DV 還是 OV 生成私鑰,都需要填寫一些基本信息,這里我們假設(shè)如下:

域名,也稱為 Common Name,因為特殊的證書不一定是域名:example.com

組織或公司名字(Organization):Example, Inc.

部門(Department):可以不填寫,這里我們寫 Web Security

城市(City):Beijing

省份(State / Province):Beijing

國家(Country):CN

加密強(qiáng)度:2048 位,如果你的機(jī)器性能強(qiáng)勁,也可以選擇 4096 位

按照以上信息,使用 OpenSSL 生成 key 和 csr 的命令如下

復(fù)制代碼 代碼如下:

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:如果是泛域名證書,則應(yīng)該填寫 *.example.com

你可以在系統(tǒng)的任何地方運(yùn)行這個命令,會自動在當(dāng)前目錄生成 example_com.csr 和 example_com.key 這兩個文件

接下來你可以查看一下 example_com.csr,得到類似這么一長串的文字

復(fù)制代碼 代碼如下:

-----BEGIN CERTIFICATE REQUEST-----
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
-----END CERTIFICATE REQUEST-----

這個 CSR 文件就是你需要提交給 SSL 認(rèn)證機(jī)構(gòu)的,當(dāng)你的域名或組織通過驗證后,認(rèn)證機(jī)構(gòu)就會頒發(fā)給你一個 example_com.crt

而 example_com.key 是需要用在 Nginx 配置里和 example_com.crt 配合使用的,需要好好保管,千萬別泄露給任何第三方。

三、Nginx 配置 HTTPS 網(wǎng)站以及增加安全的配置

前面已經(jīng)提到,你需要提交 CSR 文件給第三方 SSL 認(rèn)證機(jī)構(gòu),通過認(rèn)證后,他們會頒發(fā)給你一個 CRT 文件,我們命名為 example_com.crt

同時,為了統(tǒng)一,你可以把這三個文件都移動到 /etc/ssl/private/ 目錄。

然后可以修改 Nginx 配置文件

復(fù)制代碼 代碼如下:

server {
listen 80;
listen [::]:80 ssl ipv6only=on;
listen 443 ssl;
listen [::]:443 ssl ipv6only=on;
server_name example.com;
ssl on;
ssl_certificate /etc/ssl/private/example_com.crt;
ssl_certificate_key /etc/ssl/private/example_com.key;
}

檢測配置文件沒問題后重新讀取 Nginx 即可

復(fù)制代碼 代碼如下:

nginx -t && nginx -s reload

但是這么做并不安全,默認(rèn)是 SHA-1 形式,而現(xiàn)在主流的方案應(yīng)該都避免 SHA-1,為了確保更強(qiáng)的安全性,我們可以采取迪菲-赫爾曼密鑰交換

首先,進(jìn)入 /etc/ssl/certs 目錄并生成一個 dhparam.pem

復(fù)制代碼 代碼如下:

cd /etc/ssl/certs
openssl dhparam -out dhparam.pem 2048 # 如果你的機(jī)器性能足夠強(qiáng)大,可以用 4096 位加密

生成完畢后,在 Nginx 的 SSL 配置后面加入

復(fù)制代碼 代碼如下:

ssl_prefer_server_ciphers on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
keepalive_timeout 70;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

同時,如果是全站 HTTPS 并且不考慮 HTTP 的話,可以加入 HSTS 告訴你的瀏覽器本網(wǎng)站全站加密,并且強(qiáng)制用 HTTPS 訪問

復(fù)制代碼 代碼如下:

add_header Strict-Transport-Security max-age=63072000;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

同時也可以單獨(dú)開一個 Nginx 配置,把 HTTP 的訪問請求都用 301 跳轉(zhuǎn)到 HTTPS

復(fù)制代碼 代碼如下:

server {
listen 80;
listen [::]:80 ipv6only=on;
server_name example.com;
return 301 https://example.com$request_uri;
}

四、可靠的第三方 SSL 簽發(fā)機(jī)構(gòu)

眾所周知,前段時間某 NIC 機(jī)構(gòu)爆出過針對 Google 域名的證書簽發(fā)的丑聞,所以可見選擇一家靠譜的第三方 SSL 簽發(fā)機(jī)構(gòu)是多么的重要。

目前一般市面上針對中小站長和企業(yè)的 SSL 證書頒發(fā)機(jī)構(gòu)有:

StartSSL

Comodo / 子品牌 Positive SSL

GlobalSign / 子品牌 AlphaSSL

GeoTrust / 子品牌 RapidSSL

其中 Postivie SSL、AlphaSSL、RapidSSL 等都是子品牌,一般都是三級四級證書,所以你會需要增加 CA 證書鏈到你的 CRT 文件里。

以 Comodo Positive SSL 為例,需要串聯(lián) CA 證書,假設(shè)你的域名是 example.com

那么,串聯(lián)的命令是:

復(fù)制代碼 代碼如下:

cat example_com.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.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)站的安全保護(hù)以及嚴(yán)格的認(rèn)證。

最明顯的區(qū)別就是,通常 EV SSL 顯示都是綠色的條,比如本站的 SSL 證書就是 EV SSL。

以上就是如何在nginx下使用SSL搭建HTTPS網(wǎng)站的全部內(nèi)容了,希望大家能夠喜歡

相關(guān)文章

  • nginx部署前端項目后刷新瀏覽器報錯404問題解決

    nginx部署前端項目后刷新瀏覽器報錯404問題解決

    現(xiàn)在前端頁面部署正常訪問,但是刷新的時候出現(xiàn)了404,所以下面給整理下,這篇文章主要給大家介紹了關(guān)于nginx部署前端項目后刷新瀏覽器報錯404問題的解決辦法,需要的朋友可以參考下
    2023-11-11
  • 利用nginx實現(xiàn)動靜分離的負(fù)載均衡集群實戰(zhàn)教程

    利用nginx實現(xiàn)動靜分離的負(fù)載均衡集群實戰(zhàn)教程

    這篇文章介紹了利用nginx實現(xiàn)動靜分離的負(fù)載均衡集群實戰(zhàn),本次用到的操作系統(tǒng)及服務(wù),本次實驗一共需要3臺服務(wù)器,一臺nginx做為負(fù)載均衡分發(fā)器和動靜分離的分發(fā)器,兩臺apache做為后端服務(wù)器,使用nginx實現(xiàn)兩臺apache服務(wù)器的負(fù)載均衡和動靜分離,需要的朋友可以參考下
    2023-03-03
  • 利用nginx解決cookie跨域訪問的方法

    利用nginx解決cookie跨域訪問的方法

    本篇文章主要介紹了利用nginx解決cookie跨域訪問的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Nginx配置常用參數(shù)梳理(看這一篇就夠了)

    Nginx配置常用參數(shù)梳理(看這一篇就夠了)

    這篇文章主要為大家介紹了Nginx配置常用參數(shù)梳理總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Nginx可視化管理軟件(Nginx Proxy Manager)的使用

    Nginx可視化管理軟件(Nginx Proxy Manager)的使用

    Nginx Proxy Manager是一款開源的Nginx可視化管理界面,本文就來介紹一下Nginx Proxy Manager的使用,感興趣的可以了解一下
    2024-03-03
  • Nginx反向代理springboot的jar包過程解析

    Nginx反向代理springboot的jar包過程解析

    這篇文章主要介紹了Nginx反向代理springboot的jar包過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • nginx屏蔽指定接口(URL)的操作方式

    nginx屏蔽指定接口(URL)的操作方式

    這篇文章主要介紹了nginx屏蔽指定接口(URL)的操作方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • nginx rewrite 偽靜態(tài)配置參數(shù)和使用例子

    nginx rewrite 偽靜態(tài)配置參數(shù)和使用例子

    nginx下偽靜態(tài)配置參數(shù)詳細(xì)說明,使用nginx的朋友,nginx rewrite 偽靜態(tài)配置參數(shù)和使用例子 附正則使用說明
    2010-07-07
  • 關(guān)于Nginx 命令行控制的問題

    關(guān)于Nginx 命令行控制的問題

    Nginx 是一個高性能的 Web 服務(wù)器,從 2001 年發(fā)展至今,由于 Nginx 對硬件和操作系統(tǒng)內(nèi)核特性的深度挖掘,使得在保持高并發(fā)的同時還能夠保持高吞吐量,這篇文章主要介紹了Nginx 命令行控制,需要的朋友可以參考下
    2022-10-10

最新評論