Shell指令碼實現生成SSL自簽署證書
這篇文章主要介紹了Shell指令碼實現生成SSL自簽署證書,本文直接給出實現程式碼,程式碼中包含大量註釋,需要的朋友可以參考下
啟用 apache 的 mod_ssl 之後需要有證書才能正常運作。寫了個指令碼來操作。首先要確定機器上已經有 openssl 。
複製程式碼 程式碼如下:
#!/bin/sh
ssl 證書輸出的根目錄。
sslOutputRoot="/etc/apache_ssl"
if [ $# -eq 1 ]; then
sslOutputRoot=$1
fi
if [ ! -d ${sslOutputRoot} ]; then嬰兒起名
mkdir -p ${sslOutputRoot}
fi
cd ${sslOutputRoot}
echo “開始建立CA根證書…”
建立CA根證書,稍後用來簽署用於伺服器的證書。如果是透過商業性CA如
Verisign 或 Thawte 簽署證書,則不需要自己來建立根證書,而是應該
把後面生成的伺服器 csr 檔案內容貼入一個web表格,支付簽署費用並
等待簽署的證書。關於商業性CA的更多資訊請參見:
Verisign -
Thawte Consulting -
CertiSign Certificadora Digital Ltda. -
IKS GmbH - /
Uptime Commerce Ltd. -
BelSign NV/SA -
生成CA根證書私鑰
openssl genrsa -des3 -out ca.key 1024
生成CA根證書
根據提示填寫各個欄位, 但注意 Common Name 最好是有效根域名(如 zeali.net ),
並且不能和後來伺服器證書籤署請求檔案中填寫的 Common Name 完全一樣,否則會
導致證書生成的時候出現
error 18 at 0 depth lookup:self signed certificate 錯誤
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
echo “CA根證書建立完畢。”
echo “開始生成伺服器證書籤署檔案及私鑰 …”
生成伺服器私鑰
openssl genrsa -des3 -out server.key 1024
生成伺服器證書籤署請求檔案, Common Name 最好填寫使用該證書的完整域名
(比如: security.zeali.net )
openssl req -new -key server.key -out server.csr
ls -altrh ${sslOutputRoot}/server.*
echo “伺服器證書籤署檔案及私鑰生成完畢。”
echo “開始使用CA根證書籤署伺服器證書籤署檔案 …”
簽署伺服器證書,生成server.crt檔案
參見 http://www.faqs.org/docs/securing/chap24sec195.html
sign.sh START
Sign a SSL Certificate Request (CSR)
Copyright © 1998-1999 Ralf S. Engelschall, All Rights Reserved.
CSR=server.csr
case $CSR in
*.csr ) CERT="echo $CSR | sed -e 's/\.csr/.crt/'" ;;
) CERT="$CSR.crt" ;;
esac
make sure environment exists
if [ ! -d ca.db.certs ]; then
mkdir ca.db.certs
fi
if [ ! -f ca.db.serial ]; then
echo ‘01’ >ca.db.serial
fi
if [ ! -f ca.db.index ]; then
cp /dev/null ca.db.index
fi
create an own SSLeay config
如果需要修改證書的有效期限,請修改下面的 default_days 引數.
當前設定為10年.
cat >ca.config <<EOT
[ ca ]
default_ca = CA_own
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69918221/viewspace-2643694/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用OpenSSL生成自簽名SSL證書
- OpenSSL 生成 RootCA (根證書)並自簽署證書(支援 IP 地址)
- 自簽名ssl證書
- 自簽名SSL證書安全嗎?
- openssl生成自簽名證書
- 什麼是自簽名證書?自簽名SSL證書的優缺點?
- 什麼是自簽名SSL證書?自簽名證書有哪些安全隱患?
- 程式碼簽名證書與SSL證書區別
- 自簽名SSL證書有風險嗎?
- 如何快速建立自簽名 SSL 證書 -- [mkcert]mkcert
- 自簽名的SSL證書與專業的SSL證書有哪些區別?
- 什麼是伺服器SSL證書 是SSL加密證書還是程式碼簽名證書伺服器加密
- 本地簽發ssl證書(https)HTTP
- 簡易實現 HTTPS (二) 自簽名證書HTTP
- 利用 ACME 實現SSL證書自動化配置更新ACM
- SSL證書生成,完成HTTPS驗證HTTP
- iOS逆向 Shell指令碼+指令碼重簽名iOS指令碼
- Net8 使用BouncyCastle 生成自簽名證書AST
- 為IP地址簽發SSL證書
- 如何使用Docker生成SSL證書Docker
- .NET 6學習筆記(8)生成自簽證書筆記
- [shell]shell指令碼實現每天自動抽取資料插入hive表指令碼Hive
- 【Linux】【Shell】主控指令碼實現Linux指令碼
- SpringBoot服務間使用自簽名證書實現https雙向認證Spring BootHTTP
- shell指令碼實現DNS正向解析指令碼DNS
- 建立自簽名根證書-中間證書。
- 自簽名證書 nginx tomcatNginxTomcat
- acme.sh 生成免費 ssl 證書ACM
- 自動批次實現linux機器ssh免密shell指令碼Linux指令碼
- nginx配置SSL證書實現https服務NginxHTTP
- 申請程式碼簽名證書如何生成CSR檔案
- 程式碼簽名證書
- Shell指令碼實現Twitter的Snowflake演算法的ID生成器指令碼演算法
- thawte程式碼簽名證書和Comodo程式碼簽名證書區別
- SSL自簽名證書具備什麼樣的優點和缺點
- Akka-CQRS(13)- SSL/TLS for gRPC and HTTPS:自簽名證書產生和使用TLSRPCHTTP
- 西部數碼更新SSL證書
- Python——自動簽到指令碼Python指令碼