使用OpenSSL生成自簽名SSL證書
文章目錄
使用OpenSSL生成自簽名SSL證書
參考文件
- https://www.linuxtweaks.in/create-a-self-signed-ssl-certificate-with-openssl/
- https://www.cnblogs.com/hnxxcxg/p/7610582.html
一鍵生成自簽名SSL證書和私鑰
參見 create_self_signed_cert.sh:
./create_self_signed_cert.sh "/C=CN/ST=Guangdong/L=Guangzhou/O=xdevops/OU=xdevops/CN=gitlab.xdevops.cn"
檢查OpenSSL
檢查是否已經安裝openssl:
openssl version
一般在CentOS7上,openssl已經預設安裝好了。
生成自簽名的SSL證書和私鑰
第一步:生成私鑰
# genra 生成RSA私鑰
# -des3 des3演算法
# -out server.key 生成的私鑰檔名
# 2048 私鑰長度
openssl genrsa -des3 -out server.pass.key 2048
輸入一個4位以上的密碼。
第二步:去除私鑰中的密碼
openssl rsa -in server.pass.key -out server.key
注意:有密碼的私鑰是server.pass.key,沒有密碼的私鑰是server.key
第三步:生成CSR(證書籤名請求)
# req 生成證書籤名請求
# -new 新生成
# -key 私鑰檔案
# -out 生成的CSR檔案
# -subj 生成CSR證書的引數
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Guangdong/L=Guangzhou/O=xdevops/OU=xdevops/CN=gitlab.xdevops.cn"
subj引數說明如下:
欄位 | 欄位含義 | 示例 |
---|---|---|
/C= | Country 國家 | CN |
/ST= | State or Province 省 | Guangdong |
/L= | Location or City 城市 | Guangzhou |
/O= | Organization 組織或企業 | xdevops |
/OU= | Organization Unit 部門 | xdevops |
/CN= | Common Name 域名或IP | gitlab.xdevops.cn |
第四步:生成自簽名SSL證書
# -days 證書有效期
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
X.509證書包含三個檔案:key,csr,crt。
- key是伺服器上的私鑰檔案,用於對傳送給客戶端資料的加密,以及對從客戶端接收到資料的解密
- csr是證書籤名請求檔案,用於提交給證書頒發機構(CA)對證書籤名
- crt是由證書頒發機構(CA)簽名後的證書,或者是開發者自簽名的證書,包含證書持有人的資訊,持有人的公鑰,以及簽署者的簽名等資訊
備註:在密碼學中,X.509是一個標準,規範了公開祕鑰認證、證書吊銷列表、授權憑證、憑證路徑驗證演算法等。
在Server中配置
在Server中配置:
- 宣告開啟HTTPS (SSL認證)
- 宣告偵聽443埠(並確保已在防火牆上開啟443埠)
- 複製已簽名的SSL證書和私鑰到指定位置,並設定正確的檔案許可權
- 配置已簽名的SSL證書(.crt)的位置
- 配置已簽名的SSL證書私鑰(.key)的位置
- 配置將HTTP請求都重定向到HTTPS
在瀏覽器中訪問
在瀏覽器中開啟https://<domain_name>來訪問。
在Firefox瀏覽器中可以新增Security Exception來忽略HTTPS錯誤警告。
Chrome瀏覽器可以嘗試通過匯入CA證書的方式來忽略HTTPS錯誤警告。
注意:Chrome瀏覽器可能有匯入CA證書後仍然無法訪問的問題;不同瀏覽器對自簽名SSL證書的檢查和限制也有所區別。
注意
自簽名的SSL證書存在安全隱患,在生產環境上需要購買和使用經權威機構認證和辦法的證書。
相關文章
- openssl生成自簽名證書
- 自簽名ssl證書
- 自簽名SSL證書安全嗎?
- 什麼是自簽名證書?自簽名SSL證書的優缺點?
- 什麼是自簽名SSL證書?自簽名證書有哪些安全隱患?
- Net8 使用BouncyCastle 生成自簽名證書AST
- 如何快速建立自簽名 SSL 證書 -- [mkcert]mkcert
- 自簽名SSL證書有風險嗎?
- OpenSSL 生成 RootCA (根證書)並自簽署證書(支援 IP 地址)
- 自簽名的SSL證書與專業的SSL證書有哪些區別?
- 使用mkcert建立自簽名證書mkcert
- Xamarin Android使用自簽名證書Android
- Shell指令碼實現生成SSL自簽署證書指令碼
- 程式碼簽名證書與SSL證書區別
- openssl 簽發證書
- https--OpenSSL生成root CA及簽發證書HTTP
- Akka-CQRS(13)- SSL/TLS for gRPC and HTTPS:自簽名證書產生和使用TLSRPCHTTP
- 自簽名證書 nginx tomcatNginxTomcat
- mac 上使用OpenSSL 生成RSA證書Mac
- 使用OpenSSL生成SANs證書實操
- 建立自簽名根證書-中間證書。
- 什麼是伺服器SSL證書 是SSL加密證書還是程式碼簽名證書伺服器加密
- 如何使用Docker生成SSL證書Docker
- Apache 配置https 自簽名證書 或者 購賣證書ApacheHTTP
- SSL自簽名證書具備什麼樣的優點和缺點
- 本地簽發ssl證書(https)HTTP
- netcore 內網部署https自簽名證書NetCore內網HTTP
- 在Linux下如何根據域名自簽發OpenSSL證書與常用證書轉換Linux
- 程式碼簽名證書
- 簡易實現 HTTPS (二) 自簽名證書HTTP
- SSL證書生成,完成HTTPS驗證HTTP
- SpringBoot服務間使用自簽名證書實現https雙向認證Spring BootHTTP
- 為IP地址簽發SSL證書
- thawte程式碼簽名證書和Comodo程式碼簽名證書區別
- ios簽名證書:什麼是證書?iOS
- 申請程式碼簽名證書如何生成CSR檔案
- .NET 6學習筆記(8)生成自簽證書筆記
- iOS證書籤名機制&重簽名&防止重簽名iOS