選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

56 行
1.1KB

  1. #!/bin/sh
  2. SCRIPT=$(realpath "$0")
  3. DIR=$(dirname "$SCRIPT")
  4. CA="$DIR/ca"
  5. if [ ! -f "$CA.key" ]; then
  6. openssl req \
  7. -x509 \
  8. -sha256 \
  9. -days 1825 \
  10. -newkey rsa:2048 \
  11. -keyout "$CA.key" \
  12. -out "$CA.crt"
  13. fi
  14. if [ -n "$1" ]; then
  15. FILE="$DIR/$1"
  16. echo "Generating key for $1"
  17. openssl req \
  18. -newkey rsa:2048 \
  19. -nodes \
  20. -keyout "$FILE.key" \
  21. -out "$FILE.csr"
  22. echo ""
  23. cat <<EOF > "$FILE.ext"
  24. authorityKeyIdentifier=keyid,issuer
  25. basicConstraints=CA:FALSE
  26. keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
  27. subjectAltName = @alt_names
  28. [alt_names]
  29. DNS.1 = $1
  30. EOF
  31. echo ""
  32. openssl x509 \
  33. -req \
  34. -CA "$CA.crt" \
  35. -CAkey "$CA.key" \
  36. -in "$FILE.csr" \
  37. -out "$FILE.crt" \
  38. -days 365 \
  39. -CAcreateserial \
  40. -extfile "$FILE.ext"
  41. echo ""
  42. echo "Creating PKCS12 archive"
  43. cat "$FILE.key" "$FILE.crt" | openssl pkcs12 -export -in - -out "$FILE.p12"
  44. else
  45. echo "USAGE: generate-key.sh KEYNAME"
  46. fi