建立並部署自簽名的 SSL 證書到 Nginx

2021-08-09 07:23:50 字數 2026 閱讀 8177

自簽名的 ssl 證書(self-signed ssl certificate),就是未經過權威第三方認證的 ssl 證書,常常用作測試 https 連線之用。當使用者訪問使用這種 ssl 證書的**時,往往會被提示「該**的 ssl 證書未被認證!」。使用 cloudflare 的 cdn 加速可以解決這個問題,cloudflare 可以將你的**的內容快取到其分布全球的 cdn 節點上,而當使用者訪問你的**時,cloudflare 會將已經快取的**內容以 https 的傳輸方式傳送到使用者的瀏覽器,這時使用的 ssl 證書是 cloudflare 的 ssl 證書,是經過第三方權威認證的證書。而 cloudflare 抓取你的**內容時並不會驗證你的** ssl 證書是否經過權威第三方認證。這對於那些對於 ssl 證書不是特別了解僅僅是想做一些嘗試的人來說是乙個不錯的選擇。

建立自簽名的 ssl 證書需要用到 openssl,在 windows,mac os x,以及 linux 平台上都可以安裝使用 openssl,在這裡以 linux 系統為例,一般來說 openssl 被預設安裝在各大 linux 發行版當中。

首先,確認系統中安裝了 openssl:

which openssl
如果系統中已經安裝了 openssl,當執行這條命令後,終端會返回一條 openssl 命令的路徑,如果提示未安裝,可以使用系統中安裝的包管理軟體來安裝。對於 ubuntu 系統:

sudo apt-get install openssl
接下來,我們先生成乙個名為「ssl.key」的 rsa key檔案:

openssl genrsa -des3 -passout pass:x -out ssl.pass.key 2048
openssl rsa -passin pass:x -in ssl.pass.key -out ssl.key
執行完這兩條命令後,當前目錄下應該新增了兩個檔案:ssl.pass.key 和 ssl.key,ssl.pass.key 是為了生成 ssl.key 產生的中間檔案,此時已經不再被需要,可以刪除:

rm ssl.pass.key
接著,利用已經生成的 ssl.key 檔案,進一步生成 ssl.csr 檔案:

openssl req -new -key ssl.key -out ssl.csr
執行此行命令會提示輸入密碼,按回車即可,因為前面我們在生成 ssl.key 時選擇了密碼留空。

最後我們利用前面生成的 ssl.key 和 ssl.csr 檔案來生成 ssl.crt 檔案,也就是自簽名的 ssl 證書檔案:

openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt
這一步之後,我們得到乙個自簽名的 ssl 證書檔案 ssl.crt,有效期為 365 天。此時,ssl.csr 檔案也已經不再被需要,可以刪除掉了:

rm ssl.csr
在這裡我們仍然假設 nginx 伺服器執行在 linux 系統之上。我們在 /etc/nginx 目錄下建立 ssl 資料夾用以儲存相關 ssl 證書檔案:

sudo mkdir /etc/nginx/ssl
通過 ftp 或者 sftp 等協議將我們在本地生成的 ssl.key 和 ssl.crt 檔案上傳到 /etc/nginx/ssl 目錄下(我們也可以直接在 nginx 執行的伺服器上進行上一步生成 ssl 證書的操作,這樣就省去了從本地上傳到伺服器的操作)。修改對應 nginx 中**的配置檔案,如下:

server 

server

其中第四行 return 301 https://$server\_name$request\_uri; 是將所有指向該**的 http 鏈結自動重定向到 https 鏈結,從而避免了 404 錯誤。

配置檔案修改完畢後,重啟 nginx 服務:

service nginx restart
此時,直接使用 https 協議訪問你的**時會提示「**證書不被信任」錯誤。別忘了開啟 cloudflare 的 cdn 服務,並在 cloudflare 後台開啟 ssl 功能。

什麼是自簽名SSL證書

在ssl證書中,分類是很多的,包括了ca的ssl和一些網域名稱型別的ssl證書,那麼這些ssl中都有什麼區別呢,還有一種證書是ssl自簽名證書,那麼這種ssl自簽名證書是什麼呢,下面來看看吧。自簽名證書是什麼呢,其實很多人都不懂。不過這種證書是不可以登出的,如果被擷取了,可以重新進行通訊。而且自簽名...

OpenSSL生成自簽名SSL證書

create self signed cert.sh c cn st guangdong l guangzhou o xdevops ou xdevops cn gitlab.xdevops.cn 檢查是否已經安裝openssl openssl version genra 生成rsa私鑰 des3 ...

使用OpenSSL生成自簽名SSL證書

在server中配置 在瀏覽器中訪問 注意參見 create self signed cert.sh create self signed cert.sh c cn st guangdong l guangzhou o xdevops ou xdevops cn gitlab.xdevops.cn ...