annotate ssl_sni.t @ 251:df984d23f9d1

Tests: improve fastcgi keepalive tests. On some platforms fastcgi_keepalive.t tests failed due to problems in handling of data split into multiple packets. Harden tests to fail on all platforms by adding more sleeps, and mark them as TODO till underlying problems are fixed. Additionally, add some padding testing.
author Maxim Dounin <mdounin@mdounin.ru>
date Fri, 25 Jan 2013 20:53:53 +0400
parents 6a0d934950bc
children f4aab0e66ed0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
237
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
1 #!/usr/bin/perl
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
2
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
4 # (C) Valentin Bartenev
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
5
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
6 # Tests for Server Name Indication (SNI) TLS extension
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
7
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
8 ###############################################################################
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
9
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
10 use warnings;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
11 use strict;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
12
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
13 use Test::More;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
14
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
16
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
17 use lib 'lib';
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
18 use Test::Nginx;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
19
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
20 ###############################################################################
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
21
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
22 select STDERR; $| = 1;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
23 select STDOUT; $| = 1;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
24
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http http_ssl sni rewrite/)
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
26 ->has_daemon('openssl')
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
28
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
29 %%TEST_GLOBALS%%
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
30
249
6a0d934950bc Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents: 246
diff changeset
31 daemon off;
237
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
32
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
33 events {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
34 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
35
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
36 http {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
38
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
39 server {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
40 listen 127.0.0.1:8443 ssl;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
41 server_name localhost;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
42
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
43 ssl_certificate_key localhost.key;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
44 ssl_certificate localhost.crt;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
45
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
46 location / {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
47 return 200 $server_name;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
48 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
49 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
50
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
51 server {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
52 listen 127.0.0.1:8443;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
53 server_name example.com;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
54
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
55 ssl_certificate_key example.com.key;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
56 ssl_certificate example.com.crt;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
57
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
58 location / {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
59 return 200 $server_name;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
60 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
61 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
62 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
63
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
64 EOF
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
65
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
66 eval { require IO::Socket::SSL; die if $IO::Socket::SSL::VERSION < 1.56; };
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
67 plan(skip_all => 'IO::Socket::SSL version >= 1.56 required') if $@;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
68
243
de7338227832 Tests: removed trailing spaces.
Homutov Vladimir <vl@nginx.com>
parents: 237
diff changeset
69 eval {
237
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
70 my $ctx = Net::SSLeay::CTX_new() or die;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
71 my $ssl = Net::SSLeay::new($ctx) or die;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
72 Net::SSLeay::set_tlsext_host_name($ssl, 'example.org') == 1 or die;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
73 };
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
74 plan(skip_all => 'Net::SSLeay with OpenSSL SNI support required') if $@;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
75
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
76 $t->plan(6);
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
77
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
78 $t->write_file('openssl.conf', <<EOF);
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
79 [ req ]
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
80 default_bits = 2048
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
81 encrypt_key = no
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
82 distinguished_name = req_distinguished_name
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
83 [ req_distinguished_name ]
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
84 EOF
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
85
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
86 my $d = $t->testdir();
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
87
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
88 foreach my $name ('localhost', 'example.com') {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
89 system('openssl req -x509 -new '
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
90 . "-config '$d/openssl.conf' -subj '/CN=$name/' "
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
91 . "-out '$d/$name.crt' -keyout '$d/$name.key' "
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
92 . ">>$d/openssl.out 2>&1") == 0
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
93 or die "Can't create certificate for $name: $!\n";
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
94 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
95
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
96 $t->run();
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
97
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
98 ###############################################################################
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
99
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
100 like(get_cert_cn(), qr!/CN=localhost!, 'default cert');
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
101 like(get_cert_cn('example.com'), qr!/CN=example.com!, 'sni cert');
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
102
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
103 like(https_get_host('example.com'), qr!example.com!,
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
104 'host exists, sni exists, and host is equal sni');
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
105
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
106 like(https_get_host('example.com', 'example.org'), qr!example.com!,
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
107 'host exists, sni not found');
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
108
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
109 TODO: {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
110 local $TODO = 'sni restrictions';
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
111
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
112 like(https_get_host('example.com', 'localhost'), qr!400 Bad Request!,
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
113 'host exists, sni exists, and host is not equal sni');
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
114
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
115 like(https_get_host('example.org', 'example.com'), qr!400 Bad Request!,
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
116 'host not found, sni exists');
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
117
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
118 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
119
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
120 ###############################################################################
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
121
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
122 sub get_ssl_socket {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
123 my ($host) = @_;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
124 my $s;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
125
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
126 eval {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
127 local $SIG{ALRM} = sub { die "timeout\n" };
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
128 local $SIG{PIPE} = sub { die "sigpipe\n" };
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
129 alarm(2);
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
130 $s = IO::Socket::SSL->new(
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
131 Proto => 'tcp',
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
132 PeerAddr => '127.0.0.1:8443',
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
133 SSL_hostname => $host,
246
6072306b7924 Tests: set SSL_verify_mode explicitly.
Homutov Vladimir <vl@nginx.com>
parents: 243
diff changeset
134 SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE(),
237
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
135 SSL_error_trap => sub { die $_[1] }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
136 );
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
137 alarm(0);
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
138 };
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
139 alarm(0);
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
140
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
141 if ($@) {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
142 log_in("died: $@");
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
143 return undef;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
144 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
145
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
146 return $s;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
147 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
148
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
149 sub get_cert_cn {
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
150 my ($host) = @_;
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
151 my $s = get_ssl_socket($host);
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
152
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
153 return $s->dump_peer_certificate();
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
154 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
155
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
156 sub https_get_host {
243
de7338227832 Tests: removed trailing spaces.
Homutov Vladimir <vl@nginx.com>
parents: 237
diff changeset
157 my ($host, $sni) = @_;
237
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
158 my $s = get_ssl_socket($sni ? $sni : $host);
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
159
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
160 return http(<<EOF, socket => $s);
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
161 GET / HTTP/1.0
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
162 Host: $host
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
163
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
164 EOF
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
165 }
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
166
90af19544dd2 Tests: https sni tests.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
167 ###############################################################################