Skip to content

Commit cccc45a

Browse files
authored
Merge pull request #9 from anynines/https-redirect
Https redirect
2 parents 6b0a1d7 + 396caf7 commit cccc45a

30 files changed

+998
-252
lines changed

.final_builds/jobs/nginx/index.yml

+4
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ builds:
2727
version: bf23c7f17dc12386697113e5170f7129b65f3922
2828
blobstore_id: d939ca5d-c945-4502-7047-f22f72d940ad
2929
sha1: e6ee0e61a611c0dfc4458c5374bdcac4bb69ca1a
30+
c1f886c74700249c7cc81b0ddd6423877104bfb9:
31+
version: c1f886c74700249c7cc81b0ddd6423877104bfb9
32+
blobstore_id: a92fd131-1115-4d6a-6eaf-2e194914f8f5
33+
sha1: 94d059c0bcc4799ff1d79d2ee29a5365a3764949
3034
ca7867c57b4f1297b6d282be27ef1bca0dc59ce7:
3135
version: ca7867c57b4f1297b6d282be27ef1bca0dc59ce7
3236
blobstore_id: 88ccd427-f240-401f-6d82-e299ee0beadd

acceptance-tests/manifests/reachability.yml

+270-30
Large diffs are not rendered by default.

acceptance-tests/manifests/reachability.yml.erb

+273-25
Large diffs are not rendered by default.

acceptance-tests/run-testsuite.sh

-38
This file was deleted.
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Subproject commit 1a651169a2d4cef9ffde274526ad9d24293f02fa
1+
Subproject commit cc1a16b5d86771cf72936a0490bc4ed8181cce65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDSjCCAjKgAwIBAgIUTJ7P+x0h4yKpcT5P6/QpqQI9gYQwDQYJKoZIhvcNAQEL
3+
BQAwHjEcMBoGA1UEAwwTc3NsX2dhdGV3YXlfZGVmYXVsdDAeFw0xNzExMzAxOTAx
4+
MTVaFw0xODExMzAxOTAxMTVaMBIxEDAOBgNVBAMMB3NzbHRlc3QwggEiMA0GCSqG
5+
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3UlBQ9dkFqBjj5d9uXz/d9niZQ1g1RXyp
6+
FWEPHo2X3hz97XmUF50IVO9zudJYfW6uniCWwwxuAt27OZOXUwJcGSMOlBhJKiGH
7+
I/bpUtAhS6Mz+k2rPx/6RzOi7BDXP7QGMPBjA5RIJnhz2S2OwGl3+Ib7cayPEVUd
8+
cq6FHuKUFGMp6hQB1px2Sy/SFouewrdkZuw2UWiuSSFdpISJxQ+AKWxEY0DRKp0/
9+
CPNAqhLxjrD6txvyFoLercpIervl5R+lzG7TrWlTy9AS7qHo5OycGYLXCCHsO96C
10+
lkShFAEBfWCKGZ6BjArkQ2rh1BKZI2ylD7txOd+fMZ2ASA72bMGFAgMBAAGjgYsw
11+
gYgwHQYDVR0OBBYEFBc36EBOgdriRbPDZjsuusZMbXeIMFkGA1UdIwRSMFCAFLf7
12+
W9JEtitTs9FzLKWAz9MIw6qaoSKkIDAeMRwwGgYDVQQDDBNzc2xfZ2F0ZXdheV9k
13+
ZWZhdWx0ghQwJJPN2/QreOeG7gxeXeTKUVmS3TAMBgNVHRMBAf8EAjAAMA0GCSqG
14+
SIb3DQEBCwUAA4IBAQBHj5OiBGGjni4EQwA/Kg+SRsr4/VKTYSZF6CpXPl0nVKcO
15+
OCo+xB6ebejr0BMXRr9rN6OFpshXlbKScykS5OU1oSAk6fkDTiFWZzyFAVG/VOfD
16+
skN29SmYjRXtncRMqh4vnOWpTOBziWVQ5Jrcl0M13YJhakR28zWw8yOkAIjZgDOz
17+
HDxmn6UrL1Y9KEfbAgwDWfYxL8wy/bakxnXo4Wh36hNwKMYdl4wGT8taP5WiyW+P
18+
uR6gK34ZuPBqxpcrQHkwYfjctJdJbjG5gm/Q2b6LCtcttsyFFNCsWJO0SRMr46+D
19+
gwWNUW1am6eeljFati2ZHHrEdWfsJbRrBNFYjc4C
20+
-----END CERTIFICATE-----
21+
22+
-----BEGIN CERTIFICATE-----
23+
MIIDWTCCAkGgAwIBAgIUMCSTzdv0K3jnhu4MXl3kylFZkt0wDQYJKoZIhvcNAQEL
24+
BQAwHjEcMBoGA1UEAwwTc3NsX2dhdGV3YXlfZGVmYXVsdDAeFw0xNzExMjIxMjE5
25+
NDZaFw0xODExMjIxMjE5NDZaMB4xHDAaBgNVBAMME3NzbF9nYXRld2F5X2RlZmF1
26+
bHQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsebmKABMAm7O1IYA5
27+
j6GH+suQ5ry2Zmx+29zF41Dr2dW0I0dgDZWhEvoA10Z/jZG4cHwzAT3rbo81zbFB
28+
UryFv2Pgap5QdhteodhogIof1yaXg7oAoh7Rupx4t7dqwgvK0UC2eCAr/DfNLUlx
29+
0ljZmXOPwGTHQsHSEAKJCDTkAXGyVG0o0RNKBMorXcBkkGQjJ8spunRM+FaTzVlQ
30+
Af8oIEwtmNhbHRjxb0qLJNx0fuUXY3JrMeN1RB97tZLPdU+BPBe02DHTxHUAUwFu
31+
d3qFM0+U3Tx6Wo/pQ1XlVMbz3mnJT7fQFwQWIG1EuQXRPD10mg9kfxm4jn4J4o+f
32+
H44HAgMBAAGjgY4wgYswHQYDVR0OBBYEFLf7W9JEtitTs9FzLKWAz9MIw6qaMFkG
33+
A1UdIwRSMFCAFLf7W9JEtitTs9FzLKWAz9MIw6qaoSKkIDAeMRwwGgYDVQQDDBNz
34+
c2xfZ2F0ZXdheV9kZWZhdWx0ghQwJJPN2/QreOeG7gxeXeTKUVmS3TAPBgNVHRMB
35+
Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBl124Jqji8xTYS4JzthbcP31os
36+
20T0Ha6C+/6Dple01S9QnZdMt+JjMKGKvKpo9sK/7R8HI20ik/LfJOm0WBCfJgKA
37+
UCAitCOG91dNYNqrCcXB3xAMF68LMl7vnZeerY6vBVroRURBzEp+t8QcOmlwVKkU
38+
iJVMH6AujxFT2o3mGqoGDgErhhMgC8NYMn5ZQsRb/soOIchmYGHJPn8ZB5RhfL/Z
39+
KMEz9Osv9GWHqyGEr8L1eHc4VZ3PCROkknXqe5mVad7PCG2gLNQ71zDfDPxZFQZb
40+
wzFRkKHHaAFHdGYBsz0WF2Yc7LQ6ArTxAd+G7YwR0xHW5jAtIrX89WP1u0Hj
41+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDTDCCAjSgAwIBAgIUPrMyGxd1SyED4Ia+xr7SKPGLwmowDQYJKoZIhvcNAQEL
3+
BQAwHjEcMBoGA1UEAwwTc3NsX2dhdGV3YXlfZGVmYXVsdDAeFw0xNzExMjIxMjMz
4+
MDRaFw0xODExMjIxMjMzMDRaMBQxEjAQBgNVBAMMCWRlLmE5cy5ldTCCASIwDQYJ
5+
KoZIhvcNAQEBBQADggEPADCCAQoCggEBAL8IpDbBsgRqDHYd2lEdzySstpN+HSrm
6+
UORs8BinMijRDtWbjfvmMAD5zeIwqShltNEk1SFAglMTbTGeJoLqAIlj+56vb9z7
7+
jPSbumExkpdpvxAFvnO+JeTWRQZdy5oE1Xa31PjK/7h6AFicDjbbqYeKUaWmtIjY
8+
uAS3O40D0FrzgdoVqhzTSBRnejpX/JwtLYc4qM2lQbXwyeaUdRJVOEMKM56HwnIE
9+
juTiZymU8FKWLsRaL82hnKtZhYydDBK4TAFC1Bj9afqGLUdlyUOFPtFIs4zV9xQm
10+
HAkB5gVy9yugEiv08XAykwW2SSfOiBGYAJlb8Glem6MrlXE6stBdsN0CAwEAAaOB
11+
izCBiDAdBgNVHQ4EFgQUaZZxil8ju6zvsl4qxFkN3b0StdMwWQYDVR0jBFIwUIAU
12+
t/tb0kS2K1Oz0XMspYDP0wjDqpqhIqQgMB4xHDAaBgNVBAMME3NzbF9nYXRld2F5
13+
X2RlZmF1bHSCFDAkk83b9Ct454buDF5d5MpRWZLdMAwGA1UdEwEB/wQCMAAwDQYJ
14+
KoZIhvcNAQELBQADggEBAGRL+kXrw+qdllrtpPZtNSGQy+a/kyG/EdEYWW6jxquu
15+
mhAzlJynJU+NPrhTrTqEaUQoeZyEiP8yHYm7rG5lyl3RTYSJDBxgo7Dy2yVEDCjb
16+
W3i8WjKMjSMsGSiODY4iiehhG7fEMS2Fo08v53fl9UdVyAdnTHevog0D8eU+Pfjr
17+
ZU8hOCBqQua2T5YTbdtV7KRosIGucnX1ujSuzmRPPuvk8hglJ2VKwj8HKL7vVK9d
18+
SxkbSkbP/0Xfz4I72H35IfpO+DaBRa0UIX106WzRSH0kRaaNaeau1YnO/qtmzJSD
19+
amaQbVrI7+zAM3S4Aa58v70RrfYtPkwRFlWgUHnNy2A=
20+
-----END CERTIFICATE-----
21+
22+
-----BEGIN CERTIFICATE-----
23+
MIIDWTCCAkGgAwIBAgIUMCSTzdv0K3jnhu4MXl3kylFZkt0wDQYJKoZIhvcNAQEL
24+
BQAwHjEcMBoGA1UEAwwTc3NsX2dhdGV3YXlfZGVmYXVsdDAeFw0xNzExMjIxMjE5
25+
NDZaFw0xODExMjIxMjE5NDZaMB4xHDAaBgNVBAMME3NzbF9nYXRld2F5X2RlZmF1
26+
bHQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsebmKABMAm7O1IYA5
27+
j6GH+suQ5ry2Zmx+29zF41Dr2dW0I0dgDZWhEvoA10Z/jZG4cHwzAT3rbo81zbFB
28+
UryFv2Pgap5QdhteodhogIof1yaXg7oAoh7Rupx4t7dqwgvK0UC2eCAr/DfNLUlx
29+
0ljZmXOPwGTHQsHSEAKJCDTkAXGyVG0o0RNKBMorXcBkkGQjJ8spunRM+FaTzVlQ
30+
Af8oIEwtmNhbHRjxb0qLJNx0fuUXY3JrMeN1RB97tZLPdU+BPBe02DHTxHUAUwFu
31+
d3qFM0+U3Tx6Wo/pQ1XlVMbz3mnJT7fQFwQWIG1EuQXRPD10mg9kfxm4jn4J4o+f
32+
H44HAgMBAAGjgY4wgYswHQYDVR0OBBYEFLf7W9JEtitTs9FzLKWAz9MIw6qaMFkG
33+
A1UdIwRSMFCAFLf7W9JEtitTs9FzLKWAz9MIw6qaoSKkIDAeMRwwGgYDVQQDDBNz
34+
c2xfZ2F0ZXdheV9kZWZhdWx0ghQwJJPN2/QreOeG7gxeXeTKUVmS3TAPBgNVHRMB
35+
Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBl124Jqji8xTYS4JzthbcP31os
36+
20T0Ha6C+/6Dple01S9QnZdMt+JjMKGKvKpo9sK/7R8HI20ik/LfJOm0WBCfJgKA
37+
UCAitCOG91dNYNqrCcXB3xAMF68LMl7vnZeerY6vBVroRURBzEp+t8QcOmlwVKkU
38+
iJVMH6AujxFT2o3mGqoGDgErhhMgC8NYMn5ZQsRb/soOIchmYGHJPn8ZB5RhfL/Z
39+
KMEz9Osv9GWHqyGEr8L1eHc4VZ3PCROkknXqe5mVad7PCG2gLNQ71zDfDPxZFQZb
40+
wzFRkKHHaAFHdGYBsz0WF2Yc7LQ6ArTxAd+G7YwR0xHW5jAtIrX89WP1u0Hj
41+
-----END CERTIFICATE-----
42+
43+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDSzCCAjOgAwIBAgIUXhhaBMTu0eYX/TWeaLa4xX1zsQwwDQYJKoZIhvcNAQEL
3+
BQAwHjEcMBoGA1UEAwwTc3NsX2dhdGV3YXlfZGVmYXVsdDAeFw0xNzExMzAxOTAx
4+
MTVaFw0xODExMzAxOTAxMTVaMBMxETAPBgNVBAMMCHNzbHRlc3QyMIIBIjANBgkq
5+
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3eLFzwW6LuSUrhM98RWSLB6jdT2hVlkD
6+
Yr07UvJDfDFYydpScWB9i5IAB+J4VNzCNHAlEO7TrduZtAy/nvbjNJ5hQGsSZsoU
7+
FwEmrNscS8n4nzXpLNDl/huMarUoF0gAv/6qO1X2hPtS63/PwFmFOml813zcWPYE
8+
fBB93m9MLN01BLz9Gr+Fq5l/ih6AmA69BCLMlw1SyhViMsvMxGRYy08oHrT8EjFv
9+
1zptPiPqd0e1FQF/AKqspE2Ox2TMqmCBV/+GwnrlTmMf+dE4TjqhLyYLuhW+6TMU
10+
9NJ9FOx0aGmWrrp8OsNXvtP3cEcm075aWYDBuShLz8tAiqqXwnZ0uwIDAQABo4GL
11+
MIGIMB0GA1UdDgQWBBSbOHLCWNMz2ur/Mcb2hXGNu/r+mjBZBgNVHSMEUjBQgBS3
12+
+1vSRLYrU7PRcyylgM/TCMOqmqEipCAwHjEcMBoGA1UEAwwTc3NsX2dhdGV3YXlf
13+
ZGVmYXVsdIIUMCSTzdv0K3jnhu4MXl3kylFZkt0wDAYDVR0TAQH/BAIwADANBgkq
14+
hkiG9w0BAQsFAAOCAQEAm8AtK2PMrmTnvO+tdOFGB+QSIs3VNPNfcYJ9ozUuXaJt
15+
Bxea2KdkwXgB0WJNPkvf3dRKnDRdvG4SIg0udw+xi9B8pJp96FaRADGHH0Mi4g1i
16+
I5a7MfHk+6wROWj+BKfk99FTKARUgVdlDPh5JvmlgtOq+7Y1c8rIN0uf5YQ/6CLf
17+
YIOIvhGHxiOZmep/GbmY4HwupoeYKux5Ls5N/zShKhNYTJR6TkWtNo6H7poVRJki
18+
/wNQKPH8+6pBbyWAF1dB8v/Wh97J1uhTwQ/QAwlk7vgNuCeihsvha9dXrggCecD/
19+
+0ybDhSPcNo+allD2IMtOHpcrcS4JyrXmK+B6nTxuA==
20+
-----END CERTIFICATE-----
21+
22+
-----BEGIN CERTIFICATE-----
23+
MIIDWTCCAkGgAwIBAgIUMCSTzdv0K3jnhu4MXl3kylFZkt0wDQYJKoZIhvcNAQEL
24+
BQAwHjEcMBoGA1UEAwwTc3NsX2dhdGV3YXlfZGVmYXVsdDAeFw0xNzExMjIxMjE5
25+
NDZaFw0xODExMjIxMjE5NDZaMB4xHDAaBgNVBAMME3NzbF9nYXRld2F5X2RlZmF1
26+
bHQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsebmKABMAm7O1IYA5
27+
j6GH+suQ5ry2Zmx+29zF41Dr2dW0I0dgDZWhEvoA10Z/jZG4cHwzAT3rbo81zbFB
28+
UryFv2Pgap5QdhteodhogIof1yaXg7oAoh7Rupx4t7dqwgvK0UC2eCAr/DfNLUlx
29+
0ljZmXOPwGTHQsHSEAKJCDTkAXGyVG0o0RNKBMorXcBkkGQjJ8spunRM+FaTzVlQ
30+
Af8oIEwtmNhbHRjxb0qLJNx0fuUXY3JrMeN1RB97tZLPdU+BPBe02DHTxHUAUwFu
31+
d3qFM0+U3Tx6Wo/pQ1XlVMbz3mnJT7fQFwQWIG1EuQXRPD10mg9kfxm4jn4J4o+f
32+
H44HAgMBAAGjgY4wgYswHQYDVR0OBBYEFLf7W9JEtitTs9FzLKWAz9MIw6qaMFkG
33+
A1UdIwRSMFCAFLf7W9JEtitTs9FzLKWAz9MIw6qaoSKkIDAeMRwwGgYDVQQDDBNz
34+
c2xfZ2F0ZXdheV9kZWZhdWx0ghQwJJPN2/QreOeG7gxeXeTKUVmS3TAPBgNVHRMB
35+
Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBl124Jqji8xTYS4JzthbcP31os
36+
20T0Ha6C+/6Dple01S9QnZdMt+JjMKGKvKpo9sK/7R8HI20ik/LfJOm0WBCfJgKA
37+
UCAitCOG91dNYNqrCcXB3xAMF68LMl7vnZeerY6vBVroRURBzEp+t8QcOmlwVKkU
38+
iJVMH6AujxFT2o3mGqoGDgErhhMgC8NYMn5ZQsRb/soOIchmYGHJPn8ZB5RhfL/Z
39+
KMEz9Osv9GWHqyGEr8L1eHc4VZ3PCROkknXqe5mVad7PCG2gLNQ71zDfDPxZFQZb
40+
wzFRkKHHaAFHdGYBsz0WF2Yc7LQ6ArTxAd+G7YwR0xHW5jAtIrX89WP1u0Hj
41+
-----END CERTIFICATE-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDSzCCAjOgAwIBAgIUXhhaBMTu0eYX/TWeaLa4xX1zsQwwDQYJKoZIhvcNAQEL
3+
BQAwHjEcMBoGA1UEAwwTc3NsX2dhdGV3YXlfZGVmYXVsdDAeFw0xNzExMzAxOTAx
4+
MTVaFw0xODExMzAxOTAxMTVaMBMxETAPBgNVBAMMCHNzbHRlc3QyMIIBIjANBgkq
5+
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3eLFzwW6LuSUrhM98RWSLB6jdT2hVlkD
6+
Yr07UvJDfDFYydpScWB9i5IAB+J4VNzCNHAlEO7TrduZtAy/nvbjNJ5hQGsSZsoU
7+
FwEmrNscS8n4nzXpLNDl/huMarUoF0gAv/6qO1X2hPtS63/PwFmFOml813zcWPYE
8+
fBB93m9MLN01BLz9Gr+Fq5l/ih6AmA69BCLMlw1SyhViMsvMxGRYy08oHrT8EjFv
9+
1zptPiPqd0e1FQF/AKqspE2Ox2TMqmCBV/+GwnrlTmMf+dE4TjqhLyYLuhW+6TMU
10+
9NJ9FOx0aGmWrrp8OsNXvtP3cEcm075aWYDBuShLz8tAiqqXwnZ0uwIDAQABo4GL
11+
MIGIMB0GA1UdDgQWBBSbOHLCWNMz2ur/Mcb2hXGNu/r+mjBZBgNVHSMEUjBQgBS3
12+
+1vSRLYrU7PRcyylgM/TCMOqmqEipCAwHjEcMBoGA1UEAwwTc3NsX2dhdGV3YXlf
13+
ZGVmYXVsdIIUMCSTzdv0K3jnhu4MXl3kylFZkt0wDAYDVR0TAQH/BAIwADANBgkq
14+
hkiG9w0BAQsFAAOCAQEAm8AtK2PMrmTnvO+tdOFGB+QSIs3VNPNfcYJ9ozUuXaJt
15+
Bxea2KdkwXgB0WJNPkvf3dRKnDRdvG4SIg0udw+xi9B8pJp96FaRADGHH0Mi4g1i
16+
I5a7MfHk+6wROWj+BKfk99FTKARUgVdlDPh5JvmlgtOq+7Y1c8rIN0uf5YQ/6CLf
17+
YIOIvhGHxiOZmep/GbmY4HwupoeYKux5Ls5N/zShKhNYTJR6TkWtNo6H7poVRJki
18+
/wNQKPH8+6pBbyWAF1dB8v/Wh97J1uhTwQ/QAwlk7vgNuCeihsvha9dXrggCecD/
19+
+0ybDhSPcNo+allD2IMtOHpcrcS4JyrXmK+B6nTxuA==
20+
-----END CERTIFICATE-----
21+
22+
-----BEGIN CERTIFICATE-----
23+
MIIDWTCCAkGgAwIBAgIUMCSTzdv0K3jnhu4MXl3kylFZkt0wDQYJKoZIhvcNAQEL
24+
BQAwHjEcMBoGA1UEAwwTc3NsX2dhdGV3YXlfZGVmYXVsdDAeFw0xNzExMjIxMjE5
25+
NDZaFw0xODExMjIxMjE5NDZaMB4xHDAaBgNVBAMME3NzbF9nYXRld2F5X2RlZmF1
26+
bHQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsebmKABMAm7O1IYA5
27+
j6GH+suQ5ry2Zmx+29zF41Dr2dW0I0dgDZWhEvoA10Z/jZG4cHwzAT3rbo81zbFB
28+
UryFv2Pgap5QdhteodhogIof1yaXg7oAoh7Rupx4t7dqwgvK0UC2eCAr/DfNLUlx
29+
0ljZmXOPwGTHQsHSEAKJCDTkAXGyVG0o0RNKBMorXcBkkGQjJ8spunRM+FaTzVlQ
30+
Af8oIEwtmNhbHRjxb0qLJNx0fuUXY3JrMeN1RB97tZLPdU+BPBe02DHTxHUAUwFu
31+
d3qFM0+U3Tx6Wo/pQ1XlVMbz3mnJT7fQFwQWIG1EuQXRPD10mg9kfxm4jn4J4o+f
32+
H44HAgMBAAGjgY4wgYswHQYDVR0OBBYEFLf7W9JEtitTs9FzLKWAz9MIw6qaMFkG
33+
A1UdIwRSMFCAFLf7W9JEtitTs9FzLKWAz9MIw6qaoSKkIDAeMRwwGgYDVQQDDBNz
34+
c2xfZ2F0ZXdheV9kZWZhdWx0ghQwJJPN2/QreOeG7gxeXeTKUVmS3TAPBgNVHRMB
35+
Af8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBl124Jqji8xTYS4JzthbcP31os
36+
20T0Ha6C+/6Dple01S9QnZdMt+JjMKGKvKpo9sK/7R8HI20ik/LfJOm0WBCfJgKA
37+
UCAitCOG91dNYNqrCcXB3xAMF68LMl7vnZeerY6vBVroRURBzEp+t8QcOmlwVKkU
38+
iJVMH6AujxFT2o3mGqoGDgErhhMgC8NYMn5ZQsRb/soOIchmYGHJPn8ZB5RhfL/Z
39+
KMEz9Osv9GWHqyGEr8L1eHc4VZ3PCROkknXqe5mVad7PCG2gLNQ71zDfDPxZFQZb
40+
wzFRkKHHaAFHdGYBsz0WF2Yc7LQ6ArTxAd+G7YwR0xHW5jAtIrX89WP1u0Hj
41+
-----END CERTIFICATE-----
42+

acceptance-tests/spec/reachability_spec.rb

+16-28
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,7 @@
99
describe 'ssl-gateway reachability spec for apps' do
1010
let(:app_name) { "checker" }
1111

12-
before(:all) do
13-
app_name = "checker"
14-
manifest = "reachability.yml"
15-
properties = {
16-
:release_version => ENV["RELEASE"].gsub("ssl-gateway-", "").gsub(".yml", ""),
17-
:local_ip => ENV["LOCALHOST_IP"]
18-
}
19-
20-
ManifestHelpers::render_manifest(manifest, properties)
21-
BoshHelpers::deploy(manifest, ENV['IAAS_CONFIG'], ENV['EXTERNAL_SECRETS'], ENV['OPS_FILE'])
22-
23-
CFHelpers::push_checker_app(app_name, 80)
24-
CFHelpers::push_checker_app(app_name, 443)
25-
CFHelpers::push_checker_app(app_name, 4443)
26-
27-
CFHelpers::push_checker_app(app_name, 80, ENV["REACHABLE_BLACKLIST_DOMAIN"])
28-
CFHelpers::push_checker_app(app_name, 80, ENV["UNREACHABLE_BLACKLIST_DOMAIN"])
29-
30-
CFHelpers::push_checker_app(app_name, 80, ENV["REACHABLE_SSL_BLACKLIST_DOMAIN"])
31-
CFHelpers::push_checker_app(app_name, 443, ENV["REACHABLE_SSL_BLACKLIST_DOMAIN"])
32-
CFHelpers::push_checker_app(app_name, 4443, ENV["REACHABLE_SSL_BLACKLIST_DOMAIN"])
33-
34-
CFHelpers::push_checker_app(app_name, 80, ENV["UNREACHABLE_SSL_BLACKLIST_DOMAIN"])
35-
CFHelpers::push_checker_app(app_name, 443, ENV["UNREACHABLE_SSL_BLACKLIST_DOMAIN"])
36-
CFHelpers::push_checker_app(app_name, 4443, ENV["UNREACHABLE_SSL_BLACKLIST_DOMAIN"])
37-
end
38-
39-
context 'when a ssl-gateway is deployed with service checker apps' do
12+
context 'when service checker apps are pushed' do
4013
context "reachable blacklist domain #{ENV["REACHABLE_BLACKLIST_DOMAIN"]}" do
4114
it 'it is possible to send a http request on port 80 to the reachable blacklist domain' do
4215
expect(HTTParty.get("http://#{app_name}.#{ENV["REACHABLE_BLACKLIST_DOMAIN"]}").code == 200)
@@ -54,6 +27,11 @@
5427
expect(HTTParty.get("http://#{app_name}.#{ENV["RANDOM_DOMAIN"]}").code == 200)
5528
end
5629

30+
it 'it redirects http requests to port 443' do
31+
response = HTTParty.get("http://#{app_name}.#{ENV["RANDOM_DOMAIN"]}", follow_redirects: false)
32+
expect(response.headers["location"]).to eq("https://#{app_name}.#{ENV["DEFAULT_APP_DOMAIN"]}")
33+
end
34+
5735
it 'it is possible to send a https request on port 443 to the random domain' do
5836
expect(HTTParty.get("https://#{app_name}.#{ENV["RANDOM_DOMAIN"]}:443", :verify => false).code == 200)
5937
end
@@ -68,6 +46,11 @@
6846
expect(HTTParty.get("http://#{app_name}.#{ENV["DEFAULT_APP_DOMAIN"]}").code == 200)
6947
end
7048

49+
it 'it redirects http requests to port 443' do
50+
response = HTTParty.get("http://#{app_name}.#{ENV["DEFAULT_APP_DOMAIN"]}", follow_redirects: false)
51+
expect(response.headers["location"]).to eq("https://#{app_name}.#{ENV["DEFAULT_APP_DOMAIN"]}")
52+
end
53+
7154
it 'it is possible to send a https request on port 443 to the default app domain' do
7255
expect(HTTParty.get("https://#{app_name}.#{ENV["DEFAULT_APP_DOMAIN"]}:443", :verify => false).code == 200)
7356
end
@@ -82,6 +65,11 @@
8265
expect(HTTParty.get("http://#{app_name}.#{ENV["REACHABLE_BLACKLIST_DOMAIN"]}").code == 200)
8366
end
8467

68+
it 'it redirects http requests to port 443' do
69+
response = HTTParty.get("http://#{app_name}.#{ENV["REACHABLE_BLACKLIST_DOMAIN"]}", follow_redirects: false)
70+
expect(response.headers["location"]).to eq("https://#{app_name}.#{ENV["DEFAULT_APP_DOMAIN"]}")
71+
end
72+
8573
it 'it is possible to send a https request on port 443 to the reachable blacklist domain' do
8674
expect(HTTParty.get("https://#{app_name}.#{ENV["REACHABLE_BLACKLIST_DOMAIN"]}:443", :verify => false).code == 200)
8775
end

acceptance-tests/spec/spec_helper.rb

-14
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,6 @@
77
include BoshHelpers
88
include CFHelpers
99

10-
config.before(:suite) do
11-
BoshHelpers::create_dev_release
12-
BoshHelpers::upload_last_dev_release
13-
CFHelpers::cf_login(ENV["CF_USERNAME"], ENV["CF_PASSWORD"])
14-
CFHelpers::create_org("ssl-gateway-tests")
15-
CFHelpers::create_space("ssl-gateway-tests", "integration")
16-
CFHelpers::target("ssl-gateway-tests", "integration")
17-
end
18-
19-
config.after(:suite) do
20-
CFHelpers::delete_org("ssl-gateway-tests")
21-
BoshHelpers::cleanup_all
22-
end
23-
2410
config.color = true
2511
config.fail_fast = true
2612
config.formatter = :documentation

acceptance-tests/spec/ssl_spec.rb

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
require 'spec_helper'
2+
require 'json'
3+
4+
describe 'ssl specs' do
5+
let(:api) { ENV["CF_API"] }
6+
7+
let(:cipher_scan) do
8+
system("../cipherscan/cipherscan -j #{api} > /tmp/cipher_scan.json")
9+
JSON.parse(File.read("/tmp/cipher_scan.json")
10+
end
11+
12+
let(:allowed_ciphers) do
13+
'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'.split(':')
14+
end
15+
16+
let(:allowed_protocols) do
17+
["TLSv1.2"]
18+
end
19+
20+
context 'with a valid ssl-gateway deployment' do
21+
it "should have the correct default app cert bundles on all instances" do
22+
should = File.read(File.join(__dir__, "fixtures/wild.de.a9sapp.eu.crt.bundle"))
23+
expect(BoshHelpers::scp_read(0, "/var/vcap/store/nginx/ssl/wild.de.a9sapp.eu.crt.bundle")).to eq(should)
24+
expect(BoshHelpers::scp_read(1, "/var/vcap/store/nginx/ssl/wild.de.a9sapp.eu.crt.bundle")).to eq(should)
25+
expect(BoshHelpers::scp_read(2, "/var/vcap/store/nginx/ssl/wild.de.a9sapp.eu.crt.bundle")).to eq(should)
26+
end
27+
28+
it "should have the correct ssltest cert bundles on all instances" do
29+
should = File.read(File.join(__dir__, "fixtures/wild.checker.ssltest.com.crt.bundle"))
30+
expect(BoshHelpers::scp_read(0, "/var/vcap/store/nginx/ssl/wild.checker.ssltest.com.crt.bundle")).to eq(should)
31+
expect(BoshHelpers::scp_read(1, "/var/vcap/store/nginx/ssl/wild.checker.ssltest.com.crt.bundle")).to eq(should)
32+
expect(BoshHelpers::scp_read(2, "/var/vcap/store/nginx/ssl/wild.checker.ssltest.com.crt.bundle")).to eq(should)
33+
end
34+
35+
it "should have the correct ssltest cert bundles on all instances" do
36+
should = File.read(File.join(__dir__, "fixtures/wild.checker.ssltest2.com.crt.bundle"))
37+
expect(BoshHelpers::scp_read(0, "/var/vcap/store/nginx/ssl/wild.checker.ssltest2.com.crt.bundle")).to eq(should)
38+
expect(BoshHelpers::scp_read(1, "/var/vcap/store/nginx/ssl/wild.checker.ssltest2.com.crt.bundle")).to eq(should)
39+
expect(BoshHelpers::scp_read(2, "/var/vcap/store/nginx/ssl/wild.checker.ssltest2.com.crt.bundle")).to eq(should)
40+
end
41+
42+
it "should have the correct ciphers" do
43+
cipher_scan["cipher_suite"].each do |cipher|
44+
expect(allowed_ciphers).to include(cipher["cipher"])
45+
end
46+
end
47+
48+
it "should use the correct protocol" do
49+
cipher_scan["cipher_suite"].each do |cipher|
50+
expect(allowed_protocols).to include(cipher["protocol"])
51+
end
52+
end
53+
end
54+
end
4 KB
Binary file not shown.

acceptance-tests/spec/support/bosh_helpers.rb

+5
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,9 @@ def upload_last_dev_release
2424
def cleanup_all
2525
system("bosh -n clean-up --all")
2626
end
27+
28+
def scp_read(node, path)
29+
system("bosh -n scp -d ssl-gateway --gw-user=vcap ssl-gateway/#{node}:#{path} /tmp/file")
30+
File.read("/tmp/file")
31+
end
2732
end
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
require 'rspec/expectations'
2+
3+
RSpec::Matchers.define :to_match_cert_bundle do |expected|
4+
match do |actual|
5+
actual.gsub("\n", "") == expected.gsub("\n", "")
6+
end
7+
failure_message_when_negated do |actual|
8+
"expected that #{actual} would equal #{expected}"
9+
end
10+
end
11+

0 commit comments

Comments
 (0)