| 1101 | } |
| 1102 | |
| 1103 | static apr_status_t make_fallback_cert(md_store_t *store, const md_t *md, md_pkey_spec_t *kspec, |
| 1104 | server_rec *s, apr_pool_t *p, char *keyfn, char *crtfn) |
| 1105 | { |
| 1106 | md_pkey_t *pkey; |
| 1107 | md_cert_t *cert; |
| 1108 | apr_status_t rv; |
| 1109 | |
| 1110 | if (APR_SUCCESS != (rv = md_pkey_gen(&pkey, p, kspec)) |
| 1111 | || APR_SUCCESS != (rv = md_store_save(store, p, MD_SG_DOMAINS, md->name, |
| 1112 | keyfn, MD_SV_PKEY, (void*)pkey, 0)) |
| 1113 | || APR_SUCCESS != (rv = md_cert_self_sign(&cert, "Apache Managed Domain Fallback", |
| 1114 | md->domains, pkey, apr_time_from_sec(14 * MD_SECS_PER_DAY), p)) |
| 1115 | || APR_SUCCESS != (rv = md_store_save(store, p, MD_SG_DOMAINS, md->name, |
| 1116 | crtfn, MD_SV_CERT, (void*)cert, 0))) { |
| 1117 | ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, APLOGNO(10174) |
| 1118 | "%s: make fallback %s certificate", md->name, md_pkey_spec_name(kspec)); |
| 1119 | } |
| 1120 | return rv; |
| 1121 | } |
| 1122 | |
| 1123 | static apr_status_t get_certificates(server_rec *s, apr_pool_t *p, int fallback, |
| 1124 | apr_array_header_t **pcert_files, |
no test coverage detected