一.相關(guān)介紹
1.生成步驟
(1)生成私鑰(Private Key):使用 OpenSSL 工具生成一個私鑰文件,用于加密和解密傳輸?shù)臄?shù)據(jù)。
(2)生成證書簽名請求(Certificate Signing Request,CSR):使用 OpenSSL 工具生成一個 CSR 文件,其中包含你的服務(wù)器公鑰和相關(guān)的信息,以便用于生成證書。
(3)自簽名證書生成:使用 OpenSSL 工具根據(jù) CSR 文件和私鑰生成自簽名的 SSL 證書文件。
(4)Nginx 配置修改:在 Nginx 配置文件中進行相應(yīng)的修改,包括指定 SSL 證書文件路徑、私鑰文件路徑以及其他相關(guān)的 SSL 配置項。
總:Nginx 就可以使用自簽名 SSL 證書來啟用 HTTPS,實現(xiàn)加密和安全的通信。需要注意的是,自簽名 SSL 證書不會受到公信任的證書頒發(fā)機構(gòu)(Certificate Authority)認可,因此瀏覽器會顯示安全警告。在生產(chǎn)環(huán)境中,建議使用由受信任的證書頒發(fā)機構(gòu)簽發(fā)的證書來獲得更高的安全性和可信度。
2.相關(guān)名詞介紹
(1)私鑰(Key)生成:使用 OpenSSL 工具的 “genrsa” 命令生成私鑰文件,其中私鑰是用于加密和解密數(shù)據(jù)的關(guān)鍵。
(2)公鑰(CSR)生成:使用私鑰文件生成證書簽名請求(Certificate Signing Request,CSR),其中包含公鑰和其他相關(guān)信息。這個公鑰將被用于生成證書,并在瀏覽器連接時進行身份驗證。
(3)證書(CRT)生成:證書由公鑰(CSR)和簽名組成。簽名可以是自簽名的,也可以是由受信任的證書頒發(fā)機構(gòu)(CA)簽名的。通過使用私鑰(Key)與公鑰(CSR)進行簽名,最終生成證書(CRT)文件。
(4)服務(wù)器證書(server.crt):生成的證書文件就是服務(wù)器證書,通常命名為 “server.crt”。
(5)簽名過程:簽名是使用私鑰(Key)與公鑰(CSR)進行證書生成的過程。私鑰用于對公鑰進行簽名,以確保證書的完整性和身份驗證。
二.Nginx中實現(xiàn)自簽名SSL證書生成與配置
1.私鑰生成
#關(guān)閉防火墻及安全機制
systemctl stop firewalld.service
setenforce 0
#在root用戶的家目錄下執(zhí)行
cd ~
#使用ssl生成私鑰名為 server.key
openssl genrsa -des3 -out server.key 1024
#回車,輸入自定義的密碼文本,此處設(shè)置為12345
#輸入兩次
#查看生成的私鑰
cat server.key
2.公鑰生成
#基于創(chuàng)建的server.key私鑰創(chuàng)建server.csr公鑰
openssl req -new -key server.key -out server.csr
#查看私鑰加密的內(nèi)容
openssl req -text -in server.csr -noout
3.生成解密的私鑰key
#基于server.key私鑰生成server.key.unsecure的解密私鑰
openssl rsa -in server.key -out server.key.unsecure
4.簽名生成證書
方法1:
#方法1需要輸入密碼,私鑰密碼為12345
openssl x509 -req -days 1000 -in server.csr -signkey server.key -out server.crt
#使用私鑰和公鑰生成server.crt簽名證書,-days為1000天 -in指定公鑰,-signkey指定私鑰,生成的前面證書為server.crt
方法2:
openssl x509 -req -days 1000 -in server.csr -signkey server.key.unsecure -out server1.crt
#使用解密私鑰和公鑰生成server.crt簽名證書,-days為1000天 -in指定公鑰,-signkey指定解密后的私鑰,生成的前面證書為server.crt
#查看證書的內(nèi)容,server.crt內(nèi)容
openssl x509 -text -in server.crt -noout
5.配置證書并驗證
#安裝額外源 并安裝啟動nginx
yum install epel-release -y
yum install nginx -y
systemctl start nginx
vim /etc/nginx/nginx.conf
#編輯nginx主配置文件文件末尾添加內(nèi)容如下
server {
listen 443 ssl ;
server_name localhost ;
ssl_certificate "/root/server.key";
ssl_certificate_key "/root/server.key.unsecure";
}
#創(chuàng)建一個新的server模塊,注意要在http模塊里面,listen表示監(jiān)聽端口,server_name寫主機地址或localhost都可以,ssl_certificate是簽名證書的路徑,ssl_certificate_key是私鑰的路徑,本文私鑰路徑寫了解密后的私鑰,寫加密時的私鑰有報錯
#重啟nginx到瀏覽器上訪問驗證
systemctl start nginx
報錯信息:
[root@test5 ~]# systemctl restart nginx
Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details.
[root@test5 ~]# systemctl status nginx.service
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 四 2023-09-07 17:47:46 CST; 15s ago
Process: 54283 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 55399 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)
Process: 55397 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 54285 (code=exited, status=0/SUCCESS)9月 07 17:47:46 test5 systemd[1]: Starting The nginx HTTP and reverse proxy se…
9月 07 17:47:46 test5 nginx[55399]: nginx: [emerg] cannot load certificate key…e)
9月 07 17:47:46 test5 nginx[55399]: nginx: configuration file /etc/nginx/nginx…ed
9月 07 17:47:46 test5 systemd[1]: nginx.service: control process exited, code=…=1
9月 07 17:47:46 test5 systemd[1]: Failed to start The nginx HTTP and reverse p…r.
9月 07 17:47:46 test5 systemd[1]: Unit nginx.service entered failed state.
9月 07 17:47:46 test5 systemd[1]: nginx.service failed.
Hint: Some lines were ellipsized, use -l to show in full.解決方案:里面使用解密后的私鑰文件路徑
vim /etc/nginx/nginx.conf
ssl_certificate “/root/server.crt”;文章來源:http://www.zghlxwxcb.cn/news/detail-705367.html
systemctl start nginx
6.登錄
https://192.168.198.15/文章來源地址http://www.zghlxwxcb.cn/news/detail-705367.html
到了這里,關(guān)于Nginx中實現(xiàn)自簽名SSL證書生成與配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!