前言:
【云原生】docker容器實現https訪問_docker ssl訪問-CSDN博客
一術語介紹
①key 私鑰 ?= 明文--自己生成(genrsa )
②csr 公鑰 ?= 由私鑰生成
③crt ?證書 ?= 公鑰 + 簽名(自簽名或者由CA簽名)
④證書:server.crt文件就是證書
⑤簽名:使用私鑰key與公鑰csr進行證書server.crt生成的過程稱為簽名
1?
2? 生成私鑰
openssl genrsa -des3 -out server.key 1024
#使用ssl生成私鑰名為 server.keyopenssl: 這是 OpenSSL 工具的命令行工具,用于執行各種加密操作。genrsa: 這是 OpenSSL 命令的子命令,用于生成 RSA 密鑰對。-des3: 這是一個選項,表示生成的私鑰將使用 DES 算法(Data Encryption Standard)和 3DES 加密進行保護。這將要求輸入密碼以保護生成的私鑰文件。-out server.key: 這個選項指定了生成的私鑰文件的輸出路徑和文件名。在這種情況下,生成的私鑰將保存為 server.key 文件。1024: 這個參數指定了生成 RSA 密鑰對時所使用的密鑰長度,這里是 1024 位。密鑰長度越長,通常意味著更高的安全性,但也可能會增加計算負擔。因此,這個命令的含義是使用 OpenSSL 工具生成一個帶有密碼保護的 1024 位 RSA 密鑰對,并將私鑰保存在 server.key 文件中。生成的私鑰文件將使用 DES 算法和 3DES 加密進行保護,需要輸入密碼才能訪問私鑰
?
3 創建ca證書(也就是公鑰)
openssl req -new -key server.key -out server.csr
#基于創建的server.key私鑰創建server.csr公鑰
openssl req -text -in server.csr -noout
#查看私鑰加密的內容
4 生成解密的私鑰key?
openssl rsa -in server.key -out server.key.unsecure
#基于server.key私鑰生成server.key.unsecure的解密私鑰
5 簽名生成證書?
簽名方法1:方法1需要輸入密碼,私鑰密碼為abc123
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
#使用私鑰和公鑰生成server.crt簽名證書,-days為365天 -in指定公鑰,-signkey指定私鑰,生成的前面證書為server.crt簽名方法2:
openssl x509 -req -days 365 -in server.csr -signkey server.key.unsecure -out server.crt
#使用解密私鑰和公鑰生成server.crt簽名證書,-days為365天 -in指定公鑰,-signkey指定解密后的私鑰,生成的前面證書為server.crt
openssl x509 -text -in server.crt -noout
#查看證書的內容,server.crt內容
6? 配置證書并驗證
yum install epel-release -y
yum install nginx -y
systemctl start nginx
#安裝額外源 并安裝啟動nginx
vim /etc/nginx/nginx.conf
#編輯nginx主配置文件文件末尾添加內容如下
server {listen 443 ssl ; server_name localhost ;ssl_certificate "/root/server.crt";ssl_certificate_key "/root/server.key.unsecure";
}
#創建一個新的server模塊,注意要在http模塊里面,listen表示監聽端口,server_name寫主機地址或localhost都可以,ssl_certificate是簽名證書的路徑,ssl_certificate_key是私鑰的路徑,本文私鑰路徑寫了解密后的私鑰,寫加密時的私鑰有報錯
systemctl start nginx
#重啟nginx到瀏覽器上訪問驗證
[root@mcb-11-13 etc]# yum install epel-release -y
[root@mcb-11-13 etc]# yum install nginx -y
網絡源安裝沒有特殊的路徑依賴,軟件有固定位置,腳本截然相反?
[root@mcb-11-13 nginx]# systemctl start nginx
自己給自己發證書,所以不安全
?