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.

111 lines
3.1 KiB

  1. #!/bin/bash
  2. #Here is a script to deploy cert to mssql server.
  3. #returns 0 means success, otherwise error.
  4. #DEPLOY_mssql_CONF="/var/opt/mssql/mssql.conf"
  5. #DEPLOY_mssql_RELOAD="systemctl restart mssql-server.service"
  6. ######## Public functions #####################
  7. #domain keyfile certfile cafile fullchain
  8. mssql_deploy() {
  9. _cdomain="$1"
  10. _ckey="$2"
  11. _ccert="$3"
  12. _cca="$4"
  13. _cfullchain="$5"
  14. _debug _cdomain "$_cdomain"
  15. _debug _ckey "$_ckey"
  16. _debug _ccert "$_ccert"
  17. _debug _cca "$_cca"
  18. _debug _cfullchain "$_cfullchain"
  19. _ssl_path="/etc/acme.sh/mssql"
  20. if ! mkdir -p "$_ssl_path"; then
  21. _err "Can not create folder:$_ssl_path"
  22. return 1
  23. fi
  24. mkdir -p "$DOMAIN_BACKUP_PATH"
  25. _info "Copying key and cert"
  26. _real_key="$_ssl_path/mssql.key"
  27. if ! cat "$_ckey" >"$_real_key"; then
  28. _err "Error: write key file to: $_real_key"
  29. return 1
  30. fi
  31. _real_fullchain="$_ssl_path/mssql.chain.pem"
  32. if ! cat "$_cfullchain" >"$_real_fullchain"; then
  33. _err "Error: write key file to: $_real_fullchain"
  34. return 1
  35. fi
  36. DEFAULT_mssql_RELOAD="systemctl restart mssql-server.service"
  37. _reload="${DEPLOY_mssql_RELOAD:-$DEFAULT_mssql_RELOAD}"
  38. if [ -z "$IS_RENEW" ]; then
  39. DEFAULT_mssql_CONF="/var/opt/mssql/mssql.conf"
  40. _mssql_conf="${DEPLOY_mssql_CONF:-$DEFAULT_mssql_CONF}"
  41. if [ ! -f "$_mssql_conf" ]; then
  42. if [ -z "$DEPLOY_mssql_CONF" ]; then
  43. _err "mssql conf is not found, please define DEPLOY_mssql_CONF"
  44. return 1
  45. else
  46. _err "It seems that the specified mssql conf is not valid, please check."
  47. return 1
  48. fi
  49. fi
  50. if [ ! -w "$_mssql_conf" ]; then
  51. _err "The file $_mssql_conf is not writable, please change the permission."
  52. return 1
  53. fi
  54. _backup_conf="$DOMAIN_BACKUP_PATH/mssql.conf.bak"
  55. _info "Backup $_mssql_conf to $_backup_conf"
  56. cp "$_mssql_conf" "$_backup_conf"
  57. _info "Modify mssql conf: $_mssql_conf"
  58. if /opt/mssql/bin/mssql-conf set network.tlscert "$_real_fullchain" &&
  59. /opt/mssql/bin/mssql-conf set network.tlskey "$_real_key"; then
  60. _info "Set config success!"
  61. else
  62. _err "Config mssql server error, please report bug to us."
  63. _info "Restoring mssql conf"
  64. if cat "$_backup_conf" >"$_mssql_conf"; then
  65. _info "Restore conf success"
  66. eval "$_reload"
  67. else
  68. _err "Oops, error restore mssql conf, please report bug to us."
  69. fi
  70. return 1
  71. fi
  72. fi
  73. _info "Run reload: $_reload"
  74. if eval "$_reload"; then
  75. _info "Reload success!"
  76. if [ "$DEPLOY_mssql_CONF" ]; then
  77. _savedomainconf DEPLOY_mssql_CONF "$DEPLOY_mssql_CONF"
  78. else
  79. _cleardomainconf DEPLOY_mssql_CONF
  80. fi
  81. if [ "$DEPLOY_mssql_RELOAD" ]; then
  82. _savedomainconf DEPLOY_mssql_RELOAD "$DEPLOY_mssql_RELOAD"
  83. else
  84. _cleardomainconf DEPLOY_mssql_RELOAD
  85. fi
  86. return 0
  87. else
  88. _err "Reload error, restoring"
  89. if cat "$_backup_conf" >"$_mssql_conf"; then
  90. _info "Restore conf success"
  91. eval "$_reload"
  92. else
  93. _err "Oops, error restore mssql conf, please report bug to us."
  94. fi
  95. return 1
  96. fi
  97. return 0
  98. }