Mercurial > hg > nginx-tests
annotate ssl_password_file.t @ 431:05c46688b54b
Tests: ssl_password_file.t fixes.
Make sure to always specify listen socket in all servers as the
default vary (under root, nginx will try to listen on 80). Make sure
to detect if an https request was processed by http.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 09 Jul 2014 05:19:51 +0400 |
parents | a82b02635614 |
children | 384c05af0ef9 |
rev | line source |
---|---|
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for ssl_password_file directive. |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 use POSIX qw/ mkfifo /; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 use Socket qw/ $CRLF /; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 BEGIN { use FindBin; chdir($FindBin::Bin); } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 use lib 'lib'; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 use Test::Nginx; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 ############################################################################### |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 select STDERR; $| = 1; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 select STDOUT; $| = 1; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 |
430
a82b02635614
Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents:
423
diff
changeset
|
28 eval { require IO::Socket::SSL; IO::Socket::SSL::SSL_VERIFY_NONE(); }; |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 plan(skip_all => 'IO::Socket::SSL not installed') if $@; |
430
a82b02635614
Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents:
423
diff
changeset
|
30 eval { IO::Socket::SSL::SSL_VERIFY_NONE(); }; |
a82b02635614
Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents:
423
diff
changeset
|
31 plan(skip_all => 'IO::Socket::SSL too old') if $@; |
a82b02635614
Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents:
423
diff
changeset
|
32 |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 plan(skip_all => 'win32') if $^O eq 'MSWin32'; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
35 my $t = Test::Nginx->new()->has(qw/http http_ssl rewrite/) |
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
36 ->has_daemon('openssl'); |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 plan(skip_all => 'no ssl_password_file') unless $t->has_version('1.7.2'); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 $t->plan(3)->write_file_expand('nginx.conf', <<'EOF'); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 %%TEST_GLOBALS%% |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 daemon off; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 events { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 http { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 %%TEST_GLOBALS_HTTP%% |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 ssl_certificate_key localhost.key; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 ssl_certificate localhost.crt; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
55 # inherited by server "inherits" |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 ssl_password_file password_http; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 server { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
59 listen 127.0.0.1:8443 ssl; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 listen 127.0.0.1:8080; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 server_name localhost; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 ssl_password_file password; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 location / { |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
66 return 200 "$scheme"; |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 server { |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
71 listen 127.0.0.1:8080; |
421
e8db4355fe0b
Tests: fixed building the server_names_hash.
Sergey Kandaurov <pluknet@nginx.com>
parents:
420
diff
changeset
|
72 server_name two_entries; |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 ssl_password_file password_many; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 server { |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
78 listen 127.0.0.1:8080; |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 server_name file_is_fifo; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 ssl_password_file password_fifo; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 server { |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
85 listen 127.0.0.1:8080; |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 server_name inherits; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 ssl_certificate_key inherits.key; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 ssl_certificate inherits.crt; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
90 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
91 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
92 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 EOF |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 $t->write_file('openssl.conf', <<EOF); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 [ req ] |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
97 default_bits = 2048 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
98 encrypt_key = no |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 distinguished_name = req_distinguished_name |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
100 [ req_distinguished_name ] |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
101 EOF |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
102 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
103 my $d = $t->testdir(); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
104 mkfifo("$d/password_fifo", 0700); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
105 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
106 foreach my $name ('localhost', 'inherits') { |
423
1ac74b568503
Tests: unbreak ssl_password_file.t with upcoming OpenSSL 1.0.2.
Maxim Dounin <mdounin@mdounin.ru>
parents:
421
diff
changeset
|
107 system("openssl genrsa -out $d/$name.key -passout pass:$name 2048 " |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
108 . ">>$d/openssl.out 2>&1") == 0 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
109 or die "Can't create private key: $!\n"; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
110 system('openssl req -x509 -new ' |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
111 . "-config '$d/openssl.conf' -subj '/CN=$name/' " |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
112 . "-out '$d/$name.crt' " |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
113 . "-key '$d/$name.key' -passin pass:$name" |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
114 . ">>$d/openssl.out 2>&1") == 0 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
115 or die "Can't create certificate for $name: $!\n"; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
116 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
117 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
118 $t->write_file('password', 'localhost'); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
119 $t->write_file('password_many', "wrong$CRLF" . "localhost$CRLF"); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
120 $t->write_file('password_http', 'inherits'); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
121 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
122 fork() || exec("echo localhost > $d/password_fifo"); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
123 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
124 # do not mangle with try_run() |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
125 # we need to distinguish ssl_password_file support vs its brokenness |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
126 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
127 eval { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
128 open OLDERR, ">&", \*STDERR; close STDERR; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
129 $t->run(); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
130 open STDERR, ">&", \*OLDERR; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
131 }; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
132 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
133 ############################################################################### |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
134 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
135 is($@, '', 'ssl_password_file works'); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
136 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
137 # simple tests to ensure that nothing broke with ssl_password_file directive |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
138 |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
139 like(http_get('/'), qr/200 OK.*http/ms, 'http'); |
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
140 like(http_get('/', socket => get_ssl_socket()), qr/200 OK.*https/ms, 'https'); |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
141 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
142 ############################################################################### |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
143 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
144 sub get_ssl_socket { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
145 my $s; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
146 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
147 eval { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
148 local $SIG{ALRM} = sub { die "timeout\n" }; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
149 local $SIG{PIPE} = sub { die "sigpipe\n" }; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
150 alarm(2); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
151 $s = IO::Socket::SSL->new( |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
152 Proto => 'tcp', |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
153 PeerAddr => '127.0.0.1:8443', |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
154 SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE(), |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
155 SSL_error_trap => sub { die $_[1] } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
156 ); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
157 alarm(0); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
158 }; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
159 alarm(0); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
160 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
161 if ($@) { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
162 log_in("died: $@"); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
163 return undef; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
164 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
165 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
166 return $s; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
167 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
168 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
169 ############################################################################### |