first commit
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Default password if not provided
|
||||
DEFAULT_PASSWORD="!Q2w3e4r"
|
||||
CERTS_DIR="./certs"
|
||||
DAYS_VALID=365
|
||||
|
||||
# Check if at least one service is provided
|
||||
if [ "$#" -lt 2 ]; then
|
||||
echo "Usage: $0 <password> <service1> <service2> ... <serviceN>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Use the first argument as password; default to DEFAULT_PASSWORD if empty
|
||||
PFX_PASSWORD=${1:-$DEFAULT_PASSWORD}
|
||||
shift # Shift arguments so that the remaining are service names
|
||||
|
||||
# Create directory to store certificates
|
||||
mkdir -p $CERTS_DIR
|
||||
|
||||
# Step 1: Generate the CA certificate
|
||||
echo "Generating CA certificate..."
|
||||
openssl genrsa -out "$CERTS_DIR/ca.key" 2048
|
||||
openssl req -x509 -new -nodes -key "$CERTS_DIR/ca.key" -sha256 -days $DAYS_VALID -out "$CERTS_DIR/ca.crt" \
|
||||
-subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=YourUnit/CN=your-ca"
|
||||
|
||||
# Function to create SSL certificate for a service
|
||||
generate_certificate () {
|
||||
SERVICE_NAME=$1
|
||||
|
||||
echo "Generating certificate for $SERVICE_NAME..."
|
||||
|
||||
# Generate private key
|
||||
openssl genrsa -out "$CERTS_DIR/$SERVICE_NAME.key" 2048
|
||||
|
||||
# Create CSR
|
||||
openssl req -new -key "$CERTS_DIR/$SERVICE_NAME.key" -out "$CERTS_DIR/$SERVICE_NAME.csr" \
|
||||
-subj "/C=US/ST=YourState/L=YourCity/O=YourOrganization/OU=YourUnit/CN=$SERVICE_NAME"
|
||||
|
||||
# Sign the certificate with the CA
|
||||
openssl x509 -req -in "$CERTS_DIR/$SERVICE_NAME.csr" -CA "$CERTS_DIR/ca.crt" -CAkey "$CERTS_DIR/ca.key" \
|
||||
-CAcreateserial -out "$CERTS_DIR/$SERVICE_NAME.crt" -days $DAYS_VALID -sha256
|
||||
|
||||
# Convert to PFX format for ASP.NET
|
||||
openssl pkcs12 -export -out "$CERTS_DIR/$SERVICE_NAME.pfx" -inkey "$CERTS_DIR/$SERVICE_NAME.key" \
|
||||
-in "$CERTS_DIR/$SERVICE_NAME.crt" -certfile "$CERTS_DIR/ca.crt" -password pass:$PFX_PASSWORD
|
||||
|
||||
# Clean up CSR
|
||||
rm "$CERTS_DIR/$SERVICE_NAME.csr"
|
||||
}
|
||||
|
||||
# Step 2: Generate certificates for each specified service
|
||||
for SERVICE in "$@"
|
||||
do
|
||||
generate_certificate "$SERVICE"
|
||||
done
|
||||
|
||||
echo "Certificates generated successfully in $CERTS_DIR."
|
||||
Reference in New Issue
Block a user