acme: standardize key_type

keylength, being an acme.sh value type, uses pure numbers for rsa keys.
This can be disorienting for other acme clients. This change introduces
a new option "key_type" that aims to remove this ambiguity, and makes
all key type names follow the same pattern, making acme-common more
client agnostic.

Signed-off-by: Glen Huang <me@glenhuang.com>
This commit is contained in:
Glen Huang 2023-05-17 17:53:51 +08:00
parent 38eeca5df9
commit 6d61014e51
2 changed files with 16 additions and 6 deletions

View file

@ -44,12 +44,14 @@ get)
set -- set --
[ "$debug" = 1 ] && set -- "$@" --debug [ "$debug" = 1 ] && set -- "$@" --debug
case $keylength in case $key_type in
ec-*) ec*)
keylength=${key_type/ec/ec-}
domain_dir="$state_dir/${main_domain}_ecc" domain_dir="$state_dir/${main_domain}_ecc"
set -- "$@" --ecc set -- "$@" --ecc
;; ;;
*) rsa*)
keylength=${key_type#rsa}
domain_dir="$state_dir/$main_domain" domain_dir="$state_dir/$main_domain"
;; ;;
esac esac

View file

@ -39,8 +39,17 @@ load_options() {
export domains export domains
export main_domain export main_domain
main_domain="$(first_arg $domains)" main_domain="$(first_arg $domains)"
config_get keylength "$section" keylength ec-256 config_get keylength "$section" keylength
export keylength if [ "$keylength" ]; then
log warn "Option \"keylength\" is deprecated, please use key_type (e.g., ec256, rsa2048) instead."
case $keylength in
ec-*) key_type=${keylength/-/} ;;
*) key_type=rsa$keylength ;;
esac
else
config_get key_type "$section" key_type ec256
fi
export key_type
config_get dns "$section" dns config_get dns "$section" dns
export dns export dns
config_get acme_server "$section" acme_server config_get acme_server "$section" acme_server
@ -51,7 +60,6 @@ load_options() {
export standalone export standalone
config_get dns_wait "$section" dns_wait config_get dns_wait "$section" dns_wait
export dns_wait export dns_wait
config_get webroot "$section" webroot config_get webroot "$section" webroot
if [ "$webroot" ]; then if [ "$webroot" ]; then
log warn "Option \"webroot\" is deprecated, please remove it and change your web server's config so it serves ACME challenge requests from $CHALLENGE_DIR." log warn "Option \"webroot\" is deprecated, please remove it and change your web server's config so it serves ACME challenge requests from $CHALLENGE_DIR."