NGINX配置HTTPS OCSP完整過程

2021-08-21 10:18:30 字數 3093 閱讀 6125

**

首先是key和csr生成的相關命令:

openssl req -new -newkey rsa:2048 -nodes -keyout site.key -out site.csr

過程中會有數個問題,分別填寫如下資訊:

問題說明

country name

國家**,用2個字母表示,比如cn

state or province name

省份,填寫全稱,可省略不填,比如jiangsu

locality name

城市,可省略不填,比如changzhou

organization name

組織名organizational unit name

組織單位名

common name

通用名,一般用網域名稱,比如sillydong.com

extra attribute中還需要填寫乙個密碼和郵箱,密碼和郵箱均可以省略,不過郵箱填一下也沒啥損失。

生成的site.csr檔案中內容將用於申請證書,需要的時候直接用文字編輯器開啟後複製內容。

如果在nginx配置過程中直接使用上面的site.key,那就會在每次重啟nginx時要求輸入密碼才能繼續。這對自動化操作來是很不方便的,所以要生成乙個無密碼版本的key,使用下面的命令:

openssl rsa -in site.key -out site.nopass.key

在nginx中使用site.nopass.key可以免去每次輸入密碼的繁瑣步驟。

檢視csr檔案資訊命令:

openssl req -in site.csr -noout -text

檢視證書檔案資訊命令:

openssl x509 -in site.crt -noout -text

檢視證書fingerprint的命令:

openssl x509 -in site.crt -noout -fingerprint

接下來是證書及https驗證相關的命令:

openssl x509 -in site.crt -noout -subject

這個命令用來檢查證書的主體,可以檢視到證書的域

openssl x509 -in site.crt -noout -ocsp_uri

這個命令用來檢視證書的ocsp位址,比如godaddy的就是ocsp.godaddy.com

openssl ocsp -issuer gd_bundle-g2-g1.crt -cert site.crt -no_nonce -text -url -text -respout stapling_ocsp

這個命令可以將ocsp驗證結果寫入stapling_ocsp檔案,這個檔案可以直接使用在nginx的https配置中,並且使用檔案可以讓nginx不做網路請求驗證,直接使用此檔案中結果內容。

也是通過這種方式,將我本地生成的結果直接配置到伺服器上,才避開了伺服器無法請求到godaddy的ocsp位址的問題。

openssl s_client -connect sillydong.com:443 -status –cafile gd_bundle-g2-g1.crt -tl***tdebug < /dev/null 2>&1

openssl s_client -connect sillydong.com:443 -status –cafile gd_bundle-g2-g1.crt -tl***tdebug < /dev/null 2>&1 | grep -i "ocsp response"

這個命令執行之後,如果看到以下內容,那麼恭喜你,ocsp配置成功啦!

ocsp response: 

ocsp response data:

ocsp response status: successful (0x0)

response type: basic ocsp response

拿到了stapling_ocsp檔案之後,nginx的配置過程就是相當簡單的。

cat site.crt gd_bundle-g2-g1.crt > combined.crt

不合成乙個檔案使用的話,在進行安卓或者ios開發中,呼叫https介面會報錯,比如ios上存在報-1002的情況,合成之後這個問題就可以解決。

nginx的全套ssl配置內容如下

ssl_certificate      /home/certs/combined.crt;

ssl_certificate_key /home/certs/site.nopass.key;

ssl_protocols tlsv1 tlsv1.1 tlsv1.2;

ssl_ciphers ecdhe-rsa-aes256-sha384:aes256-sha256:high:!rc4:!md5:!anull:!enull:!null:!dh:!edh:!aesgcm;

ssl_prefer_server_ciphers on;

ssl_session_cache shared:ssl:10m;

ssl_session_timeout 1d;

ssl_stapling on;

ssl_stapling_verify on;

ssl_stapling_file /home/certs/stapling_ocsp;

ssl_trusted_certificate /home/certs/gd_bundle-g2-g1.crt;

resolver 114.114.114.114 valid=300s;

resolver_timeout 1s;

add_header strict-transport-security "max-age=31536000";

這樣配置之後使用上面驗證ocsp的命令測試可以得到正確的結果。

總結一下,這個故事告訴我們,不要買godaddy的ssl!不要買godaddy的ssl!不要買godaddy的ssl!

nginx動態配置配置

nginx中的conf檔案配置測試 upstream backserver server upsync指令指定從consul哪個路徑拉取上游伺服器配置 upsync timeout配置從consul拉取上游伺服器配置的超時時間 upsync interval配置從consul拉取上游伺服器配置的間隔...

Nginx配置分析 nginx 二

基於網域名稱配置 在 conf nginx.conf中新增兩個虛擬主機配置 server server 配置host檔案,dns本地化 192.168.1.103 www.host1.com 192.168.1.103 www.host2.com 測試成功 埠配置在 conf nginx.conf中...

nginx 配置nginx集群(7)

1.準備兩台伺服器 且都安裝nginx 和keepalived 安裝keepalived yum install keepalived y安裝好後linux 的etc 資料夾下面會有keepalived資料夾以及配置檔案 2.修改keepalived的配置問價 virtual ipaddress3....