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.

100 lines
3.9 KiB

8 years ago
8 years ago
  1. # Using deploy api
  2. Here are the scripts to deploy the certs/key to the server/services.
  3. ## 1. Deploy the certs to your cpanel host.
  4. (cpanel deploy hook is not finished yet, this is just an example.)
  5. Before you can deploy your cert, you must [issue the cert first](https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert).
  6. Then you can deploy now:
  7. ```sh
  8. export DEPLOY_CPANEL_USER=myusername
  9. export DEPLOY_CPANEL_PASSWORD=PASSWORD
  10. acme.sh --deploy -d example.com --deploy --deploy-hook cpanel
  11. ```
  12. ## 2. Deploy ssl cert on kong proxy engine based on api.
  13. Before you can deploy your cert, you must [issue the cert first](https://github.com/Neilpang/acme.sh/wiki/How-to-issue-a-cert).
  14. (TODO)
  15. ## 3. Deploy the cert to remote server through SSH access.
  16. The ssh deploy plugin allows you to deploy certificates to a remote host
  17. using SSH command to connect to the remote server. The ssh plugin is invoked
  18. with the following command...
  19. ```bash
  20. acme.sh --deploy -d example.com --deploy-hook ssh
  21. ```
  22. Prior to running this for the first time you must tell the plugin where
  23. and how to deploy the certificates. This is done by exporting the following
  24. environment variables. This is not required for subsequent runs as the
  25. values are stored by acme.sh in the domain configuration files.
  26. Required...
  27. ```bash
  28. export ACME_DEPLOY_SSH_USER="admin"
  29. ```
  30. Optional...
  31. ```bash
  32. export ACME_DEPLOY_SSH_CMD=""
  33. export ACME_DEPLOY_SSH_SERVER="qnap"
  34. export ACME_DEPLOY_SSH_KEYFILE="/etc/stunnel/stunnel.pem"
  35. export ACME_DEPLOY_SSH_CERTFILE="/etc/stunnel/stunnel.pem"
  36. export ACME_DEPLOY_SSH_CAFILE="/etc/stunnel/uca.pem"
  37. export ACME_DEPLOY_SSH_FULLCHAIN=""
  38. export ACME_DEPLOY_SSH_REMOTE_CMD="/etc/init.d/stunnel.sh restart"
  39. ```
  40. The values used above are illustrative only and represent those that could
  41. be used to deploy certificates to a QNAP NAS device running QTS 4.2
  42. ###ACME_DEPLOY_SSH_USER
  43. Username at the remote host that SSH will login with. Note that
  44. SSH must be able to login to remote host without a password... SSH Keys
  45. must have been exchanged with the remote host. Validate and test that you
  46. can login to USER@URL from the host running acme.sh before using this script.
  47. The USER@URL at the remote server must also have has permissions to write to
  48. the target location of the certificate files and to execute any commands
  49. (e.g. to stop/start services).
  50. ###ACME_DEPLOY_SSH_CMD
  51. You can customize the ssh command used to connect to the remote host. For example
  52. if you need to connect to a specific port at the remote server you can set this
  53. to, for example, "ssh -p 22"
  54. ###ACME_DEPLOY_SSH_SERVER
  55. URL or IP Address of the remote server. If not provided then the domain
  56. name provided on the acme.sh --deploy command line is used.
  57. ###ACME_DEPLOY_SSH_KEYFILE
  58. Target filename for the private key issued by LetsEncrypt.
  59. ###ACME_DEPLOY_SSH_CERTFILE
  60. Target filename for the certificate issued by LetsEncrypt. If this filename
  61. is the same as that provided for ACME_DEPLOY_SSH_KEYFILE then this certificate
  62. is appended to the same file as the private key.
  63. ###ACME_DEPLOY_SSH_CAFILE
  64. Target filename for the CA intermediate certificate issued by LetsEncrypt.
  65. If this is the same as a previous filename then it is appended to the same
  66. file
  67. ###ACME_DEPLOY_SSH_FULLCHAIN
  68. Target filename for the fullchain certificate issued by LetsEncrypt.
  69. If this is the same as a previous filename then it is appended to the same
  70. file
  71. ###ACME_DEPLOY_SSH_REMOTE_CMD
  72. Command to execute on the remote server after copying any certificates. This
  73. could be any additional command required for example to stop and restart
  74. the service.
  75. ###Backups
  76. Before writing a certificate file to the remote server the existing
  77. certificate will be copied to a backup directory on the remote server.
  78. These are placed in a hidden directory in the home directory of the SSH
  79. user
  80. ```bash
  81. ~/.acme_ssh_deploy/[domain name]-backup-[timestamp]
  82. ```
  83. Any backups older than 180 days will be deleted when new certificates
  84. are deployed.