win如何使用OpenSSL生成自簽名證書,使 http 升級為 https
前言
HTTPS其實(shí)就是HTTP over SSL,也就是讓HTTP連接建立在SSL安全連接之上。
創(chuàng)建自簽名證書需要安裝openssl。參考本文安裝OpenSSL部分。
使用OpenSSL生成自簽名證書的步驟:參考本文使用OpenSSL生成自簽名證書部分。
- 創(chuàng)建私鑰Key(.key文件);
- 創(chuàng)建簽名請求(.csr文件);
- 將Key中的密碼;
- 用Key簽名證書(.key+.csr=>.crt)
為HTTPS準(zhǔn)備的證書需要注意,創(chuàng)建的簽名請求的CN必須與域名完全一致,否則無法通過瀏覽器驗(yàn)證。
CA證書和自簽名證書的區(qū)別?
CA證書和自簽名證書都是用于加密通信的數(shù)字證書,但是它們之間有一些重要的區(qū)別:
-
CA證書是由公認(rèn)的數(shù)字證書授權(quán)機(jī)構(gòu)(CA)頒發(fā)的,而自簽名證書是由用戶自行創(chuàng)建的。CA是Certificate Authority的縮寫,也叫“證書授權(quán)中心”。
-
CA證書的安全性更高,因?yàn)樗鼈兪艿綑?quán)威機(jī)構(gòu)的信任和監(jiān)管。自簽名證書的安全性取決于用戶的技能和處理過程。
-
CA證書可用于公共網(wǎng)絡(luò)和網(wǎng)站,因?yàn)樗鼈円驯辉S多瀏覽器和操作系統(tǒng)信任。自簽名證書只能在私有網(wǎng)絡(luò)或用于測試目的使用。
-
CA證書需要支付費(fèi)用,而自簽名證書是免費(fèi)的。
總的來說,如果您需要在公共網(wǎng)絡(luò)上運(yùn)行網(wǎng)站或應(yīng)用程序,那么建議使用CA證書。如果您只需要在私有網(wǎng)絡(luò)上加密通信或進(jìn)行測試,則可以使用自簽名證書。
安裝OpenSSL
下載OpenSSL安裝包
前往https://slproweb.com/products/Win32OpenSSL.html 下載win OpenSSL安裝包
exe 和 msi二選一即可。注意,我們Light版本是輕量版,我們直接下載完整版本。
下載下來是Win64OpenSSL_Light-3_1_1.msi
安裝
安裝過程多數(shù)選擇默認(rèn)即可。
注意在選擇將OpenSSL的DLL安裝到Windows/System/
下還是安裝目錄的bin
目錄下時(shí),我們選擇bin
目錄,避免System目錄下其他軟件的DLL影響OpenSSL。
其他頁面一直點(diǎn)擊下一步即可安裝完成。
最后這個(gè)頁面可以選擇給作者打賞,不打賞的話全部取消勾選即可。
安裝完成。
設(shè)置環(huán)境變量
我們還需要在系統(tǒng)環(huán)境變量里面添加路徑,我的是C:\Program Files\OpenSSL-Win64\bin
添加好后,點(diǎn)擊右邊上移按鈕,上移到最上面:
保存修改即可。
驗(yàn)證安裝是否正確
打開cmd,輸入命令查看版本:
openssl version
可以看到安裝成功。如果不是我們安裝的版本信息,可能需要重啟電腦。
使用OpenSSL生成自簽名證書
進(jìn)入SSL文件夾
創(chuàng)建SSL文件夾,用于存放生成的證書文件。我的是 D:\ssl證書
打開cmd,cd到SSL文件夾路徑,輸入命令openssl回車。
D:
cd D:\ssl證書
openssl
生成服務(wù)器私鑰(.key 文件)
輸入以下命令生成秘鑰文件:
openssl genrsa -des3 -out server.pass.key 2048
隨后輸入一個(gè)4位以上的密碼,然后再輸入一次密碼。如圖:
命令解釋如下:
genra:生成RSA私鑰
-des3:使用des3算法
-out :指定生成文件名
2048:私鑰長度設(shè)置為2048
去除私鑰中的密碼
openssl rsa -in server.pass.key -out server.key
rsa: 生成RSA私鑰
-in:輸入私鑰文件
-out: 輸出私鑰文件
無密碼:設(shè)置無密碼的私鑰文件
隨后輸入server.pass.key的密碼。如圖:
生成證書簽名請求(.csr文件)
輸入以下命令生成證書簽名請求:
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Zhejiang/L=Hangzhou/O=OrganizeName/OU=UnitName/CN=192.168.0.174"
req:生成證書簽名請求
-new:新生成
-key:私鑰文件
-out:指定生成的CSR文件名
-subj:生成CSR證書的參數(shù)
subj參數(shù)說明如下:
字段 | 全稱 | 舉例 |
---|---|---|
/C= | Country 國家 | CN |
/ST= | State or Province 州/省 | Zhejiang |
/L= | Location or City 城市 | Hangzhou |
/O= | Organization 組織/企業(yè) | OrganizeName |
/OU= | Organization Unit 部門 | UnitName |
/CN= | Common Name 域名or IP | www.yourdomain.com 或者 192.168.x.x |
生成自簽名SSL證書(.crt文件)
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
-days:證書有效期
-req:需要證書
-in:輸入csr文件
-signkey:指定 .key 文件
-out:輸出crt文件
文件夾總共有4個(gè)文件,server.pass.key 、server.key、server.csr、server.crt。
其中配置nginx的話需要server.key和server.crt兩個(gè)文件。
至此,證書生成完成。
X.509 證書包含三個(gè)文件:key,csr,crt
key是服務(wù)器上的私鑰文件,用于對發(fā)送給客戶端數(shù)據(jù)的加密,以及對從客戶端接收到數(shù)據(jù)的解密
csr是證書簽名請求文件,用于提交給證書頒發(fā)機(jī)構(gòu)(CA)對證書簽名
crt是由證書頒發(fā)機(jī)構(gòu)(CA)簽名后的證書,或者是開發(fā)者自簽名的證書,包含證書持有人的信息,持有人的公鑰,以及簽署者的簽名等信息
備注:在密碼學(xué)中,X.509是一個(gè)標(biāo)準(zhǔn),規(guī)范了公開秘鑰認(rèn)證、證書吊銷列表、授權(quán)憑證、憑證路徑驗(yàn)證算法等。
自簽名證書的使用(以Nginx為例)
服務(wù)端上傳SSL證書
Web服務(wù)器需要把server.crt
發(fā)給瀏覽器驗(yàn)證,然后用server.key
解密瀏覽器發(fā)送的數(shù)據(jù)。(剩下兩個(gè)文件server.pass.key
和 server.csr
已經(jīng)不需要了)。
服務(wù)端配置443端口并使用SSL證書
以Nginx為例,我們在 %你的Nginx安裝目錄%/conf/nginx.conf
里添加對443端口的監(jiān)聽。
需要在server{...}
中配置:
server {
#監(jiān)聽443端口
listen 443 ssl;
server_name 127.0.0.1;
#ssl證書的crt文件路徑
ssl_certificate D:\\SSLCertificate\\server.crt;
#ssl證書的key文件路徑
ssl_certificate_key D:\\SSLCertificate\\server.key;
#反向代理
location / {
root html;
index index.html index.htm;
proxy_pass http://127.0.0.1:7001;
}
}
修改完成后,輸入以下命令重新加載 nginx.conf
即可
D:
cd D:\Nginx
nginx -s reload
客戶端訪問https
如果一切順利,打開瀏覽器,就可以通過HTTPS訪問網(wǎng)站。第一次訪問時(shí)會出現(xiàn)警告(因?yàn)槲覀兊淖院灻C書不被瀏覽器信任)如圖所示:
方式一:強(qiáng)制瀏覽器和操作系統(tǒng)接受我們自己的證書頒發(fā)機(jī)構(gòu)
一種做法是:點(diǎn)擊【高級】->【繼續(xù)前往192.168.x.x(不安全)】。
您可以強(qiáng)制瀏覽器和操作系統(tǒng)接受我們自己的證書頒發(fā)機(jī)構(gòu)。因此,一旦安裝 CA 證書并將其添加到受信任列表中,您將不會看到安全警告。
方式二:在您的瀏覽器/操作系統(tǒng)中安裝證書授權(quán)
另一種做法:您還可以與您的開發(fā)團(tuán)隊(duì)共享 CA 證書,以便在他們的瀏覽器中安裝。通過瀏覽器把證書導(dǎo)入并設(shè)置為“受信任”,以后該電腦訪問網(wǎng)站就可以安全地連接Web服務(wù)器了。
- MAC 用戶查看此指引
- Windows 用戶查看此指引
參考文章
給Nginx配置一個(gè)自簽名的SSL證書
使用OpenSSL生成自簽名SSL證書文章來源:http://www.zghlxwxcb.cn/news/detail-503003.html
How to Create Self-Signed Certificates using OpenSSL文章來源地址http://www.zghlxwxcb.cn/news/detail-503003.html
到了這里,關(guān)于win如何使用OpenSSL生成自簽名證書,使 http 升級為 https的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!