forked from mirrors/kore
Add support for setting an email for ACME.
Can be configured via the acme_email configuration option. eg: acme_email john@example.com
This commit is contained in:
parent
ff40f04693
commit
445163f7c5
|
@ -52,6 +52,7 @@ void kore_acme_get_paths(const char *, char **, char **);
|
|||
int kore_acme_tls_alpn(SSL *, const unsigned char **, unsigned char *,
|
||||
const unsigned char *, unsigned int, void *);
|
||||
|
||||
extern char *acme_email;
|
||||
extern char *acme_provider;
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
|
14
src/acme.c
14
src/acme.c
|
@ -244,6 +244,7 @@ static char *account_url = NULL;
|
|||
static u_int8_t acme_alpn_name[] =
|
||||
{ 0xa, 'a', 'c', 'm', 'e', '-', 't', 'l', 's', '/', '1' };
|
||||
|
||||
char *acme_email = NULL;
|
||||
char *acme_provider = NULL;
|
||||
char *acme_root_path = NULL;
|
||||
char *acme_runas_user = NULL;
|
||||
|
@ -505,7 +506,9 @@ acme_account_resolve(struct kore_msg *msg, const void *data)
|
|||
static void
|
||||
acme_account_reg(int resolve_only)
|
||||
{
|
||||
struct kore_json_item *json;
|
||||
int len;
|
||||
char mail[1024];
|
||||
struct kore_json_item *json, *contact;
|
||||
|
||||
if (account_url == NULL)
|
||||
return;
|
||||
|
@ -519,6 +522,15 @@ acme_account_reg(int resolve_only)
|
|||
json = kore_json_create_object(NULL, NULL);
|
||||
kore_json_create_literal(json, "termsOfServiceAgreed", KORE_JSON_TRUE);
|
||||
|
||||
if (acme_email) {
|
||||
len = snprintf(mail, sizeof(mail), "mailto:%s", acme_email);
|
||||
if (len == -1 || (size_t)len >= sizeof(mail))
|
||||
fatalx("mail contact '%s' too large", acme_email);
|
||||
|
||||
contact = kore_json_create_array(json, "contact");
|
||||
kore_json_create_string(contact, NULL, mail);
|
||||
}
|
||||
|
||||
if (resolve_only) {
|
||||
kore_json_create_literal(json,
|
||||
"onlyReturnExisting", KORE_JSON_TRUE);
|
||||
|
|
11
src/config.c
11
src/config.c
|
@ -70,6 +70,7 @@ static int configure_file(char *);
|
|||
static int configure_acme(char *);
|
||||
static int configure_acme_root(char *);
|
||||
static int configure_acme_runas(char *);
|
||||
static int configure_acme_email(char *);
|
||||
static int configure_acme_provider(char *);
|
||||
#endif
|
||||
|
||||
|
@ -228,6 +229,7 @@ static struct {
|
|||
#if defined(KORE_USE_ACME)
|
||||
{ "acme_runas", configure_acme_runas },
|
||||
{ "acme_root", configure_acme_root },
|
||||
{ "acme_email", configure_acme_email },
|
||||
{ "acme_provider", configure_acme_provider },
|
||||
#endif
|
||||
#if defined(KORE_USE_PLATFORM_PLEDGE)
|
||||
|
@ -635,6 +637,15 @@ configure_acme_root(char *root)
|
|||
return (KORE_RESULT_OK);
|
||||
}
|
||||
|
||||
static int
|
||||
configure_acme_email(char *email)
|
||||
{
|
||||
kore_free(acme_email);
|
||||
acme_email = kore_strdup(email);
|
||||
|
||||
return (KORE_RESULT_OK);
|
||||
}
|
||||
|
||||
static int
|
||||
configure_acme_provider(char *provider)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue