You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.4 KiB

  1. #!/bin/bash
  2. #Here is a script to deploy cert as a PKCS #12 / PFX certificate
  3. #returns 0 means success, otherwise error.
  4. #DEPLOY_PKCS12_KEYFILE=""
  5. #DEPLOY_PKCS12_KEYPASS=""
  6. #DEPLOY_PKCS12_RELOAD=""
  7. ######## Public functions #####################
  8. #domain keyfile certfile cafile fullchain
  9. pkcs12_deploy() {
  10. _cdomain="$1"
  11. _ckey="$2"
  12. _ccert="$3"
  13. _cca="$4"
  14. _cfullchain="$5"
  15. _debug _cdomain "$_cdomain"
  16. _debug _ckey "$_ckey"
  17. _debug _ccert "$_ccert"
  18. _debug _cca "$_cca"
  19. _debug _cfullchain "$_cfullchain"
  20. DEFAULT_PKCS12_KEYFILE=""
  21. _pkcs12_keyfile="${DEPLOY_PKCS12_KEYFILE:-$DEFAULT_PKCS12_KEYFILE}"
  22. DEFAULT_PKCS12_KEYPASS=""
  23. _pkcs12_keypass="${DEPLOY_PKCS12_KEYPASS:-$DEFAULT_PKCS12_KEYPASS}"
  24. DEFAULT_PKCS12_RELOAD=""
  25. _pkcs12_reload="${DEPLOY_PKCS12_RELOAD:-$DEFAULT_PKCS12_RELOAD}"
  26. _debug _pkcs12_keyfile "$_pkcs12_keyfile"
  27. if [ -z "$_pkcs12_keyfile" ]; then
  28. _err "Missing argument where to deploy the certificate key, please set DEPLOY_PKCS12_KEYFILE."
  29. return 1
  30. elif [ -a "$_pkcs12_keyfile" ]; then
  31. if [ ! -f "$_pkcs12_keyfile" ]; then
  32. _err "The file $_pkcs12_keyfile is not a regular file, please check."
  33. return 1
  34. elif [ ! -w "$_pkcs12_keyfile" ]; then
  35. _err "The file $_pkcs12_keyfile is not writable, please change the permission."
  36. return 1
  37. fi
  38. fi
  39. if [ -z "$_pkcs12_keypass" ]; then
  40. _err "Missing argument specifiying the password for the certificate key, please set DEPLOY_PKCS12_KEYPASS."
  41. return 1
  42. fi
  43. _info "Generate pkcs12"
  44. _toPkcs "$_pkcs12_keyfile" "$_ckey" "$_ccert" "$_cca" "$_pkcs12_keypass"
  45. if [ "$?" != "0" ]; then
  46. _err "Oops, error creating pkcs12, please report bug to us."
  47. return 1
  48. fi
  49. if [ -n "$_pkcs12_reload" ]; then
  50. _info "Run reload: $_pkcs12_reload"
  51. if eval "$_pkcs12_reload"; then
  52. _info "Reload success!"
  53. else
  54. _err "Reload error"
  55. return 1
  56. fi
  57. fi
  58. if [ "$DEPLOY_PKCS12_KEYFILE" ]; then
  59. _savedomainconf DEPLOY_PKCS12_KEYFILE "$DEPLOY_PKCS12_KEYFILE"
  60. else
  61. _cleardomainconf DEPLOY_PKCS12_KEYFILE
  62. fi
  63. if [ "$DEPLOY_PKCS12_KEYPASS" ]; then
  64. _savedomainconf DEPLOY_PKCS12_KEYPASS "$DEPLOY_PKCS12_KEYPASS"
  65. else
  66. _cleardomainconf DEPLOY_PKCS12_KEYPASS
  67. fi
  68. if [ "$DEPLOY_PKCS12_RELOAD" ]; then
  69. _savedomainconf DEPLOY_PKCS12_RELOAD "$DEPLOY_PKCS12_RELOAD"
  70. else
  71. _cleardomainconf DEPLOY_PKCS12_RELOAD
  72. fi
  73. return 0
  74. }