当前位置: 首页 > news >正文

create certificate on Linux by script ( Method 1)

create certificate on Linux by script ( Method 1)

Posted on 2026-04-28 11:56  k98091518  阅读(0)  评论(0)    收藏  举报

Method 1

!/bin/bash

提示输入主机名

read -p "请输入主机名 (例如: WVABOSD11): " HOSTNAME

检查输入是否为空

if [ -z "$HOSTNAME" ]; then
echo "错误:主机名不能为空!"
exit 1
fi

定义文件名

CONF_FILE="${HOSTNAME}.scbmisp.conf"
KEY_FILE="${HOSTNAME}.scbmisp.key"
CSR_FILE="${HOSTNAME}.scbmisp.csr"

生成配置文件

cat > "$CONF_FILE" <<EOF
[ req ]
default_bits = 2048
encrypt_key = no
default_md = sha256
utf8 = yes
string_mask = utf8only
prompt = no
distinguished_name = server_dn
req_extensions = server_reqext

[ server_dn ]
countryName = HK
localityName = Central
organizationName = Shanghai Commercial Bank Ltd.
commonName = ${HOSTNAME}.scbmisp

[ server_reqext ]
basicConstraints = CA:FALSE
keyUsage = critical,digitalSignature,keyEncipherment
extendedKeyUsage = serverAuth
subjectKeyIdentifier = hash
subjectAltName = @alt_names

[alt_names]
DNS.1 = ${HOSTNAME}.scbmisp
EOF

echo "✅ 配置文件已生成: $CONF_FILE"

生成私钥和CSR

openssl req -new -nodes -sha256
-out "$CSR_FILE"
-config "$CONF_FILE"
-keyout "$KEY_FILE"

检查执行结果

if [ $? -eq 0 ]; then
echo "✅ CSR 生成成功: $CSR_FILE"
echo "✅ 私钥生成成功: $KEY_FILE"
echo ""
echo "验证 CSR 中的 SAN 扩展:"
openssl req -text -noout -in "$CSR_FILE" | grep -A 1 "X509v3 Subject Alternative Name"
else
echo "❌ 生成失败,请检查错误信息"
exit 1
fi