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 *,
|
int kore_acme_tls_alpn(SSL *, const unsigned char **, unsigned char *,
|
||||||
const unsigned char *, unsigned int, void *);
|
const unsigned char *, unsigned int, void *);
|
||||||
|
|
||||||
|
extern char *acme_email;
|
||||||
extern char *acme_provider;
|
extern char *acme_provider;
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#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[] =
|
static u_int8_t acme_alpn_name[] =
|
||||||
{ 0xa, 'a', 'c', 'm', 'e', '-', 't', 'l', 's', '/', '1' };
|
{ 0xa, 'a', 'c', 'm', 'e', '-', 't', 'l', 's', '/', '1' };
|
||||||
|
|
||||||
|
char *acme_email = NULL;
|
||||||
char *acme_provider = NULL;
|
char *acme_provider = NULL;
|
||||||
char *acme_root_path = NULL;
|
char *acme_root_path = NULL;
|
||||||
char *acme_runas_user = NULL;
|
char *acme_runas_user = NULL;
|
||||||
|
@ -505,7 +506,9 @@ acme_account_resolve(struct kore_msg *msg, const void *data)
|
||||||
static void
|
static void
|
||||||
acme_account_reg(int resolve_only)
|
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)
|
if (account_url == NULL)
|
||||||
return;
|
return;
|
||||||
|
@ -519,6 +522,15 @@ acme_account_reg(int resolve_only)
|
||||||
json = kore_json_create_object(NULL, NULL);
|
json = kore_json_create_object(NULL, NULL);
|
||||||
kore_json_create_literal(json, "termsOfServiceAgreed", KORE_JSON_TRUE);
|
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) {
|
if (resolve_only) {
|
||||||
kore_json_create_literal(json,
|
kore_json_create_literal(json,
|
||||||
"onlyReturnExisting", KORE_JSON_TRUE);
|
"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(char *);
|
||||||
static int configure_acme_root(char *);
|
static int configure_acme_root(char *);
|
||||||
static int configure_acme_runas(char *);
|
static int configure_acme_runas(char *);
|
||||||
|
static int configure_acme_email(char *);
|
||||||
static int configure_acme_provider(char *);
|
static int configure_acme_provider(char *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -228,6 +229,7 @@ static struct {
|
||||||
#if defined(KORE_USE_ACME)
|
#if defined(KORE_USE_ACME)
|
||||||
{ "acme_runas", configure_acme_runas },
|
{ "acme_runas", configure_acme_runas },
|
||||||
{ "acme_root", configure_acme_root },
|
{ "acme_root", configure_acme_root },
|
||||||
|
{ "acme_email", configure_acme_email },
|
||||||
{ "acme_provider", configure_acme_provider },
|
{ "acme_provider", configure_acme_provider },
|
||||||
#endif
|
#endif
|
||||||
#if defined(KORE_USE_PLATFORM_PLEDGE)
|
#if defined(KORE_USE_PLATFORM_PLEDGE)
|
||||||
|
@ -635,6 +637,15 @@ configure_acme_root(char *root)
|
||||||
return (KORE_RESULT_OK);
|
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
|
static int
|
||||||
configure_acme_provider(char *provider)
|
configure_acme_provider(char *provider)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue