|
1 | 1 | # test mod_md stapling support |
2 | 2 |
|
3 | 3 | import os |
| 4 | +import re |
4 | 5 | import time |
5 | 6 | from datetime import timedelta |
6 | 7 | import pytest |
@@ -37,10 +38,11 @@ def _method_scope(self, env, request): |
37 | 38 | yield |
38 | 39 | env.apache_stop() |
39 | 40 |
|
40 | | - def configure_httpd(self, env, domains=None, add_lines="", ssl_stapling=False): |
| 41 | + def configure_httpd(self, env, domains=None, add_lines="", ssl_stapling=False, |
| 42 | + std_vhosts=True): |
41 | 43 | if not isinstance(domains, list): |
42 | 44 | domains = [domains] if domains else [] |
43 | | - conf = MDConf(env) |
| 45 | + conf = MDConf(env, std_vhosts=std_vhosts) |
44 | 46 | conf.add(""" |
45 | 47 | <IfModule tls_module> |
46 | 48 | LogLevel tls:trace4 |
@@ -423,3 +425,29 @@ def test_md_801_011(self, env): |
423 | 425 | stat = env.await_ocsp_status(domain) |
424 | 426 | assert stat['ocsp'] == "successful (0x0)" |
425 | 427 | assert stat['verify'] == "0 (ok)" |
| 428 | + |
| 429 | + # test MDStapleOthers setting |
| 430 | + def test_md_801_012(self, env): |
| 431 | + # turn stapling on, wait for it to appear in connections |
| 432 | + md = self.mdA |
| 433 | + conf = self.configure_httpd(env, std_vhosts=False) |
| 434 | + conf.add("MDStapling on") |
| 435 | + conf.add("MDStapleOthers on") |
| 436 | + conf.add("LogLevel md:debug") |
| 437 | + conf.start_vhost(md) |
| 438 | + conf.add_certificate(env.store_domain_file(md, 'pubcert.pem'), |
| 439 | + env.store_domain_file(md, 'privkey.pem')) |
| 440 | + conf.end_vhost() |
| 441 | + conf.install() |
| 442 | + env.httpd_error_log.clear_log() |
| 443 | + assert env.apache_restart() == 0, f'{env.apachectl_stderr}' |
| 444 | + try: |
| 445 | + stat = env.await_ocsp_status(md, timeout=1) |
| 446 | + except TimeoutError: |
| 447 | + pass |
| 448 | + if env.lacks_ocsp(): |
| 449 | + assert env.httpd_error_log.scan_recent( |
| 450 | + pattern=re.compile(r'.*md\[other]: certificate with serial .* has no OCSP responder URL')) |
| 451 | + else: |
| 452 | + assert stat['ocsp'] == "successful (0x0)" |
| 453 | + assert stat['verify'] == "0 (ok)" |
0 commit comments