nginx https 單機設置自簽名證書


nginx配置好后訪問會提示不安全

 

這時候就需要配置ssl證書,一般都是購買或者申請的,如果是內網可以用自簽名證書

 

前置條件要安裝openssl,centos7.9應該默認安裝

可以通過 以下指令查看版本

openssl version

首先安裝nginx,創建目錄,等會證書文件就放在這

mkdir /etc/nginx/ca

 

 

這里稍微說明一下ssl證書流程,除了一般的客戶端和服務端還有一個ca機構,主要負責頒發證書和驗證證書。當然我們離線自簽名證書,這個ca也就在服務端了。

key是服務器上的私鑰文件,用於對發送給客戶端數據的加密,以及對從客戶端接收到數據的解密
csr是證書簽名請求文件,用於提交給證書頒發機構(CA)對證書簽名
crt是由證書頒發機構(CA)簽名后的證書,或者是開發者自簽名的證書,包含證書持有人的信息,持有人的公鑰,以及簽署者的簽名等信息

主要就是這三個文件,我們依次來生成

我們進入到之前的文件夾里執行

 openssl genrsa -des3 -out server.key 1024

這是生成key也就是私鑰,用來負責加解密,這里要輸入一個密碼后面要用到

 

接下來生成csr,也就是請求文件

 openssl req -new -key server.key -out server.csr 

正規流程是將請求文件給ca機構來簽名,我們自簽名直接生成就好

接下來要需要依次輸入國家,地區,城市,組織,組織單位,Common Name和Email,注意Common Name要和你域名一致

 

下一步就是生成證書

 openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

 

最后為了方便使用,去掉私鑰的密碼

openssl rsa -in server.pass.key -out server.key

 

在/etc/nginx/nginx.conf加上以下內容

ssl_certificate /etc/nginx/ca/server.crt;
        ssl_certificate_key /etc/nginx/ca/server.key;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:20m;
        ssl_session_timeout 180m;

 

 

 

這時候訪問https

 

 發現還是提示,這是因為證書沒導入客戶端。

下載crt文件導入瀏覽器和電腦

 

*導入成功后刷新網站

 

 

 edge可以了但是chrome貌似還不行,估計要自建ca來了,之后研究(可能要域名而不是ip)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM