Skip to content

Commit d19c6a7

Browse files
committed
fixup! Tests: test external account binding support.
1 parent 9cf9c9e commit d19c6a7

File tree

1 file changed

+39
-12
lines changed

1 file changed

+39
-12
lines changed

t/acme_external_account.t

Lines changed: 39 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ use Test::Nginx::DNS;
2626
select STDERR; $| = 1;
2727
select STDOUT; $| = 1;
2828

29-
my $t = Test::Nginx->new()->has(qw/http http_ssl socket_ssl/)
29+
my $t = Test::Nginx->new()->has(qw/http http_ssl sni socket_ssl_sni/)
3030
->has_daemon('openssl');
3131

3232
$t->write_file_expand('nginx.conf', <<'EOF');
@@ -43,11 +43,20 @@ http {
4343
4444
resolver 127.0.0.1:%%PORT_8980_UDP%%;
4545
46-
acme_issuer default {
46+
acme_issuer eab-data {
4747
uri https://acme.test:%%PORT_9000%%/dir;
48-
external_account_key eab-kid eab-secret;
48+
external_account_key eab-data
49+
data:0Xl6zTksEz1MqVDw5dn680nma9vYwJoI30LjRdbrDSjTfRxtcX_6YOAYzVDImRQV;
4950
ssl_trusted_certificate acme.test.crt;
50-
state_path %%TESTDIR%%;
51+
state_path %%TESTDIR%%/eab-data;
52+
accept_terms_of_service;
53+
}
54+
55+
acme_issuer eab-file {
56+
uri https://acme.test:%%PORT_9000%%/dir;
57+
external_account_key eab-file eab-secret;
58+
ssl_trusted_certificate acme.test.crt;
59+
state_path %%TESTDIR%%/eab-file;
5160
accept_terms_of_service;
5261
}
5362
@@ -58,9 +67,19 @@ http {
5867
5968
server {
6069
listen 127.0.0.1:8443 ssl;
61-
server_name example.test;
70+
server_name data.example.test;
71+
72+
acme_certificate eab-data;
73+
74+
ssl_certificate $acme_certificate;
75+
ssl_certificate_key $acme_certificate_key;
76+
}
77+
78+
server {
79+
listen 127.0.0.1:8443 ssl;
80+
server_name file.example.test;
6281
63-
acme_certificate default;
82+
acme_certificate eab-file;
6483
6584
ssl_certificate $acme_certificate;
6685
ssl_certificate_key $acme_certificate_key;
@@ -90,7 +109,8 @@ foreach my $name ('acme.test') {
90109
my $dp = port(8980, udp=>1);
91110
my @dc = (
92111
{ name => 'acme.test', A => '127.0.0.1' },
93-
{ name => 'example.test', A => '127.0.0.1' }
112+
{ name => 'data.example.test', A => '127.0.0.1' },
113+
{ name => 'file.example.test', A => '127.0.0.1' }
94114
);
95115

96116
my $eab_secret = gen_hmac_secret(48);
@@ -99,11 +119,15 @@ my $acme = Test::Nginx::ACME->new($t, port(9000), port(9001),
99119
$t->testdir . '/acme.test.crt',
100120
$t->testdir . '/acme.test.key',
101121
http_port => port(8080),
102-
tls_port => port(8443),
103122
dns_port => $dp,
104123
conf => {
105124
externalAccountBindingRequired => \1,
106-
externalAccountMACKeys => { 'eab-kid' => $eab_secret },
125+
externalAccountMACKeys => {
126+
'eab-data' =>
127+
'0Xl6zTksEz1MqVDw5dn680nma9vYwJoI3'
128+
. '0LjRdbrDSjTfRxtcX_6YOAYzVDImRQV',
129+
'eab-file' => $eab_secret
130+
},
107131
}
108132
)->has(qw/eab/);
109133

@@ -116,13 +140,15 @@ $t->write_file('acme-root.crt', $acme->trusted_ca());
116140
$t->write_file('eab-secret', $eab_secret);
117141

118142
$t->write_file('index.html', 'SUCCESS');
119-
$t->plan(1)->run();
143+
$t->plan(2)->run();
120144

121145
###############################################################################
122146

123-
$acme->wait_certificate('example.test') or die "no certificate";
147+
$acme->wait_certificate('eab-data/data.example.test') or die "no certificate";
148+
$acme->wait_certificate('eab-file/file.example.test') or die "no certificate";
124149

125-
like(get(8443, 'example.test', 'acme-root'), qr/SUCCESS/, 'tls request');
150+
like(get(8443, 'data.example.test', 'acme-root'), qr/SUCCESS/, 'inline key');
151+
like(get(8443, 'file.example.test', 'acme-root'), qr/SUCCESS/, 'key file');
126152

127153
###############################################################################
128154

@@ -135,6 +161,7 @@ sub get {
135161
http_get('/',
136162
PeerAddr => '127.0.0.1:' . port($port),
137163
SSL => 1,
164+
SSL_hostname => $host,
138165
$ca ? (
139166
SSL_ca_file => "$d/$ca.crt",
140167
SSL_verifycn_name => $host,

0 commit comments

Comments
 (0)