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.

240 lines
9.0 KiB

5 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. [//]: # (Copyright 2019-2020 Rodolphe Bréard <rodolphe@breard.tf>)
  2. [//]: # (Copying and distribution of this file, with or without modification,)
  3. [//]: # (are permitted in any medium without royalty provided the copyright)
  4. [//]: # (notice and this notice are preserved. This file is offered as-is,)
  5. [//]: # (without any warranty.)
  6. # Changelog
  7. All notable changes to this project will be documented in this file.
  8. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
  9. and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
  10. ## [Unreleased]
  11. ### Added
  12. - Allow the configuration of some default values at compile time using environment variables.
  13. ### Changed
  14. - The default account directory now is `/var/lib/acmed/accounts`.
  15. - The default certificates and private keys directory now is `/var/lib/acmed/certs`.
  16. ## [0.16.0] - 2020-11-11
  17. ### Added
  18. - The `pkcs9_email_address`, `postal_address` and `postal_code` subject attributes has been added.
  19. ### Changed
  20. - The `friendly_name` and `pseudonym` subject attributes has been removed.
  21. - The `street_address` subject attribute has been renamed `street`.
  22. ## [0.15.0] - 2020-11-03
  23. ### Added
  24. - The names of both the certificate file and the associated private key can now be configured.
  25. ### Fixed
  26. - Configuration files cannot be loaded more than one time, which prevents infinite recursion.
  27. ### Changed
  28. - Certificates are now allowed to share the same name if their respective key type is different.
  29. ## [0.14.0] - 2020-10-27
  30. ### Added
  31. - Add proxy support through the `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables.
  32. - Allow to specify a unique name for each certificate.
  33. ### Changed
  34. - The minimal required Rust version is 1.42.0.
  35. ## [0.13.0] - 2020-10-10
  36. ### Added
  37. - In the configuration, `root_certificates` has been added to the `global` and `endpoint` sections as an array of strings representing the path to root certificate files.
  38. - At compilation, it is now possible to statically link OpenSSL using the `openssl_vendored` feature.
  39. - In the Makefile, it is now possible to specify which target triple to build for.
  40. ## [0.12.0] - 2020-09-26
  41. ### Added
  42. - Some subject attributes can now be specified.
  43. - Support for NIST P-521 certificates and account keys.
  44. ### Fixed
  45. - Support for Let's Encrypt non-standard account creation object.
  46. ## [0.11.0] - 2020-09-19
  47. ### Added
  48. - The `contacts` account configuration field has been added.
  49. - External account binding.
  50. ### Changed
  51. - The `email` account configuration field has been removed. In replacement, use the `contacts` field.
  52. - Accounts now have their own hooks and environment.
  53. - Accounts are now stored in a single binary file.
  54. ### Fixed
  55. - ACMEd can now build on platforms with a `time_t` not defined as an `i64`.
  56. - The Makefile is now fully works on FreeBSD.
  57. ## [0.10.0] - 2020-08-27
  58. ### Added
  59. - The account key type and signature algorithm can now be specified in the configuration using the `key_type` and `signature_algorithm` parameters.
  60. - The delay to renew a certificate before its expiration date can be specified in the configuration using the `renew_delay` parameter at either the certificate, endpoint and global level.
  61. - It is now possible to specify IP identifiers (RFC 8738) using the `ip` parameter instead of the `dns` one.
  62. - The hook templates of type `challenge-*` have a new `identifier_tls_alpn` field which contains, if available, the identifier in a form that is suitable to the TLS ALPN challenge.
  63. - Globing is now supported for configuration files inclusion.
  64. - The CSR's digest algorithm can now be specified using the `csr_digest` parameter.
  65. ### Changed
  66. - In the certificate configuration, the `domains` field has been renamed `identifiers`.
  67. - The `algorithm` certificate configuration field has been renamed `key_type`.
  68. - The `algorithm` hook template variable has been renamed `key_type`.
  69. - The `domain` hook template variable has been renamed `identifier`.
  70. - The default hooks have been updated.
  71. ### Fixed
  72. - The Makefile now works on FreeBSD. It should also work on other BSD although it has not been tested.
  73. ## [0.9.0] - 2020-08-01
  74. ### Added
  75. - System users and groups can now be specified by name in addition to uid/gid.
  76. ### Changed
  77. - The HTTP(S) part is now handled by `attohttpc` instead of `reqwest`.
  78. ### Fixed
  79. - In tacd, the `--acme-ext-file` parameter is now in conflict with `acme-ext` instead of itself.
  80. ## [0.8.0] - 2020-06-12
  81. ### Changed
  82. - The HTTP(S) part is now handled by `reqwest` instead of `http_req`.
  83. ## Fixed
  84. - `make install` now work with the busybox toolchain.
  85. ## [0.7.0] - 2020-03-12
  86. ### Added
  87. - Wildcard certificates are now supported. In the file name, the `*` is replaced by `_`.
  88. - Internationalized domain names are now supported.
  89. ### Changed
  90. - The PID file is now always written whether or not ACMEd is running in the foreground. Previously, it was written only when running in the background.
  91. ### Fixed
  92. - In the directory, the `externalAccountRequired` field is now a boolean instead of a string.
  93. ## [0.6.1] - 2019-09-13
  94. ### Fixed
  95. - A race condition when requesting multiple certificates on the same non-existent account has been fixed.
  96. - The `foregroung` option has been renamed `foreground`.
  97. ## [0.6.0] - 2019-06-05
  98. ### Added
  99. - Hooks now have the optional `allow_failure` field.
  100. - In hooks, the `stdin_str` has been added in replacement of the previous `stdin` behavior.
  101. - HTTPS request rate limits.
  102. ### Changed
  103. - Certificates are renewed in parallel.
  104. - Hooks are now cleaned right after the current challenge has been validated instead of after the certificate's retrieval.
  105. - In hooks, the `stdin` field now refers to the path of the file that should be written into the hook's standard input.
  106. - The logging format has been re-written.
  107. ### Fixed
  108. - The http-01-echo hook now correctly sets the file's access rights
  109. ## [0.5.0] - 2019-05-09
  110. ### Added
  111. - ACMEd now displays a warning when the server indicates an error in an order or an authorization.
  112. - A configuration file can now include several other files.
  113. - Hooks have access to environment variables.
  114. - In the configuration, the global section, certificates and domains can define environment variables for the hooks.
  115. - tacd is now able to listen on a unix socket.
  116. ## [0.4.0] - 2019-05-08
  117. ### Added
  118. - Man pages.
  119. - The project can now be built and installed using `make`.
  120. - The post-operation hooks now have access to the `is_success` template variable.
  121. - Challenge hooks now have the `is_clean_hook` template variable.
  122. - An existing certificate will be renewed if more domains have been added in the configuration.
  123. ### Changed
  124. - Unknown configuration fields are no longer tolerated.
  125. ### Removed
  126. - In challenge hooks, the `algorithm` template variable has been removed.
  127. ### Fixed
  128. - In some cases, ACMEd was unable to parse a certificate's expiration date.
  129. ## [0.3.0] - 2019-04-30
  130. ### Added
  131. - tacd, the TLS-ALPN-01 validation daemon.
  132. - An account object has been added in the configuration.
  133. - In the configuration, hooks now have a mandatory `type` variable.
  134. - It is now possible to declare hooks to clean after the challenge validation hooks.
  135. - The CLI `--root-cert` option has been added.
  136. - Failure recovery: HTTPS requests rejected by the server that are recoverable, like the badNonce error, are now retried several times before being considered a hard failure.
  137. - The TLS-ALPN-01 challenge is now supported. The proof is a string representation of the acmeIdentifier extension. The self-signed certificate itself has to be built by a hook.
  138. ### Changed
  139. - In the configuration, the `email` certificate field has been replaced by the `account` field which matches an account object.
  140. - The format of the `domain` configuration variable has changed and now includes the challenge type.
  141. - The `token` challenge hook variable has been renamed `file_name`.
  142. - The `challenge_hooks`, `post_operation_hooks`, `file_pre_create_hooks`, `file_post_create_hooks`, `file_pre_edit_hooks` and `file_post_edit_hooks` certificate variables has been replaced by `hooks`.
  143. - The logs has been purged from many useless debug and trace entries.
  144. ### Removed
  145. - The DER storage format has been removed.
  146. - The `challenge` certificate variables has been removed.
  147. ## [0.2.1] - 2019-03-30
  148. ### Changed
  149. - The bug that prevented from requesting more than two certificates has been fixed.
  150. ## [0.2.0] - 2019-03-27
  151. ### Added
  152. - The `kp_reuse` flag allow to reuse a key pair instead of creating a new one at each renewal.
  153. - It is now possible to define hook groups that can reference either hooks or other hook groups.
  154. - Hooks can be defined when before and after a file is created or edited (`file_pre_create_hooks`, `file_post_create_hooks`, `file_pre_edit_hooks` and `file_post_edit_hooks`).
  155. - It is now possible to send logs either to syslog or stderr using the `--to-syslog` and `--to-stderr` arguments.
  156. ### Changed
  157. - `post_operation_hook` has been renamed `post_operation_hooks`.
  158. - By default, logs are now sent to syslog instead of stderr.
  159. - The process is now daemonized by default. It is possible to still run it in the foreground using the `--foregroung` flag.