天天看點

shell腳本建立證書

證書相關的參數已經寫死了,有想要通過輸入傳入的,可以拿這個改造下。

#!/bin/bash

rm ca.*
rm server.*
rm client.*

# 一、生成CA根證書
# 1、生成CA私鑰(ca.key)
openssl genrsa -out ./ca.key 4096 

# 2、生成CA憑證簽名請求(ca.csr)
openssl req -new -key ./ca.key -out ./ca.csr -subj "/C=CN/ST=ShenZhen/L=ShenZhen/O=test/OU=main/CN=*.test.main.com/[email protected]"

# 3、生成自簽名CA憑證(ca.cert)
openssl x509 -req -days 3650 -in ./ca.csr -signkey ./ca.key -out ./ca.crt

# 二、生成Server證書
# 1、生成服務端私鑰(server.key)
openssl genrsa -out ./server.key 4096

# 2、生成服務端證書簽名請求(server.csr)
openssl req -new -key ./server.key -out ./server.csr -subj "/C=CN/ST=ShenZhen/L=ShenZhen/O=test/OU=server/CN=*.test.server.com/[email protected]"

# 3、使用ca證書簽署服務端csr以生成服務端證書(server.cert)
openssl x509 -req -in ./server.csr -CA ./ca.crt -CAkey ./ca.key -CAcreateserial -out ./server.crt -days 3650

# 三、生成Client證書(用于雙向認證)
# 1、生成用戶端私鑰(client.key)
openssl genrsa -out ./client.key 4096

# 2、生成用戶端證書簽名請求(client.csr)
openssl req -new -key ./client.key -out ./client.csr -subj "/C=CN/ST=ShenZhen/L=ShenZhen/O=test/OU=client/CN=*.test.client.com/[email protected]"

# 3、使用ca證書簽署用戶端csr以生成用戶端證書(client.cert)
openssl x509 -req -in ./client.csr -CA ./ca.crt -CAkey ./ca.key -CAcreateserial -out ./client.crt -days 3650