Add Test SSL with self-signed certificates

This commit is contained in:
Fabrice Reix 2021-02-06 12:15:32 +01:00
parent e655d05c1f
commit 95b9887e55
11 changed files with 133 additions and 5 deletions

View File

@ -61,7 +61,10 @@ jobs:
cargo build --verbose cargo build --verbose
- name: Test Prequisites - name: Test Prequisites
run: | run: |
pip3 install Flask && cd integration && python3 server.py >server.log 2>&1 & pip3 install Flask
cd integration
python3 server.py >server.log 2>&1 &
python3 ssl/server.py >server-ssl.log 2>&1 &
wget https://snapshots.mitmproxy.org/5.2/mitmproxy-5.2-linux.tar.gz -O - | tar -xz && ./mitmdump -p 8888 --modify-header "/From-Proxy/Hello" & wget https://snapshots.mitmproxy.org/5.2/mitmproxy-5.2-linux.tar.gz -O - | tar -xz && ./mitmdump -p 8888 --modify-header "/From-Proxy/Hello" &
- name: Run Tests - name: Run Tests
run: | run: |
@ -76,7 +79,9 @@ jobs:
if: ${{ always() }} if: ${{ always() }}
with: with:
name: tests-ubuntu-${{ matrix.rust }}-artifacts name: tests-ubuntu-${{ matrix.rust }}-artifacts
path: integration/server.log path: |
integration/server.log
integration/server-ssl.log
test-osx: test-osx:
runs-on: macos-latest runs-on: macos-latest
@ -101,7 +106,10 @@ jobs:
cargo build --verbose cargo build --verbose
- name: Test Prequisites - name: Test Prequisites
run: | run: |
pip3 install Flask && cd integration && python3 server.py >server.log 2>&1 & pip3 install Flask
cd integration
python3 server.py >server.log 2>&1 &
python3 ssl/server.py >server-ssl.log 2>&1 &
wget https://snapshots.mitmproxy.org/5.2/mitmproxy-5.2-osx.tar.gz -O - | tar -xz && ./mitmdump -p 8888 --modify-header "/From-Proxy/Hello" & wget https://snapshots.mitmproxy.org/5.2/mitmproxy-5.2-osx.tar.gz -O - | tar -xz && ./mitmdump -p 8888 --modify-header "/From-Proxy/Hello" &
- name: Run Tests - name: Run Tests
run: | run: |
@ -116,4 +124,6 @@ jobs:
if: ${{ always() }} if: ${{ always() }}
with: with:
name: tests-osx-${{ matrix.rust }}-artifacts name: tests-osx-${{ matrix.rust }}-artifacts
path: integration/server.log path: |
integration/server.log
integration/server-ssl.log

View File

@ -15,7 +15,7 @@ def main():
[test_hurl.test(f) for f in sorted(glob.glob('tests_error_parser/*.hurl'))] [test_hurl.test(f) for f in sorted(glob.glob('tests_error_parser/*.hurl'))]
# Dynamic run (with server) # Dynamic run (with server)
[test_hurl.test(f) for f in sorted(glob.glob('tests/*.hurl'))] [test_hurl.test(f) for f in sorted(glob.glob('tests/*.hurl')) + sorted(glob.glob('ssl/*.hurl'))]
print('test integration ok!') print('test integration ok!')

32
integration/ssl/cert.pem Normal file
View File

@ -0,0 +1,32 @@
-----BEGIN CERTIFICATE-----
MIIFlzCCA3+gAwIBAgIUMzQ1cLyRXQ4YmOr7+CMtbrgFF58wDQYJKoZIhvcNAQEL
BQAwWzELMAkGA1UEBhMCRlIxGzAZBgNVBAgMEk5vdXZlbGxlIEFxdWl0YWluZTER
MA8GA1UEBwwIQm9yZGVhdXgxDTALBgNVBAoMBEh1cmwxDTALBgNVBAMMBEh1cmww
HhcNMjEwMjA2MTExNDI3WhcNMjEwMjA3MTExNDI3WjBbMQswCQYDVQQGEwJGUjEb
MBkGA1UECAwSTm91dmVsbGUgQXF1aXRhaW5lMREwDwYDVQQHDAhCb3JkZWF1eDEN
MAsGA1UECgwESHVybDENMAsGA1UEAwwESHVybDCCAiIwDQYJKoZIhvcNAQEBBQAD
ggIPADCCAgoCggIBAL1RGgD11WTmg1SK83K6VewWpXayKoVMnuPl+vGh/gxXuW5g
Fv8dvXr/UbQDkNE8yBNPUEShN+0q/MKNilbRurcb8YMybSYVb2rE8p7WLiUMspEw
cnB3saZfbqOncWAPhdVY9+zyudaFCEinAPj1NlYC9q/wh9f+aBig7Sr+VfHP+yl4
0IDxb8AqLkKOQ6uY1qmWebIo67f0SQG3fMwk7P3U0gbOFlY9S+7W//LYnk/QPJBY
2md4UkFQTCFJ2S81mKlacPyClV9GycmIXiSK6xJErxXJ58r+AUpbz4N/5kTOPvvv
Abazey9hk9ez3wSgAXl25z2DPVEPVzNtbdLhB7laRyxrZTd+MYGMUIvBc+cApcXy
sEYaUAQV2FOmY3vK5m8PgXocOCISeV8mRUzBLUDK3PXhzpuUV0hg8PwTBwDu6p+A
2e+ARNAC9L7lXNHQmW5hkOgq+oJ8m07eAN4SKeYm3bV+/CI5XWwCqvGrKKNlXF2Q
ZBMPouJABynu/BQHyYsmR8DnoYRthXgFkSxl+PsBEH0XOp3WlBooOBM/5kw5yzL7
a3PNUQlFJN+dLaiwEgdUbG071ZOXBnb5AcALKRGA6EqMvYJH2D2PKnM9Q9g0VxkC
iYNUQN4RP5wDu4fcdS+rYTxdzhFpbALOFPWeJZeNXpgoZobufp2NWDqdSjBVAgMB
AAGjUzBRMB0GA1UdDgQWBBR57wK6If8NG47sJ4d6OPcawKBX4zAfBgNVHSMEGDAW
gBR57wK6If8NG47sJ4d6OPcawKBX4zAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
DQEBCwUAA4ICAQCH4iJiL3RENaX5rREOJ3cbXkxbOljo77dcjBPu0/VLty/KJMOW
EFNVQlLYPqGV856a8dLmxtpj6nukCj3reY8CdXo/pDzWSOjZq8LbFRcFfK+NORTG
ammhtIbBExL9LbtE7RNxOHjz9vM2Z+87ZokNcg0pQgrTk58Yk2sXogmzhd44cpr9
M67SqrC+y3IoqLgFmYvPLZZbcrzUPMQjBYaJtIU33xboN0d8mB7T/xLvs1DI9P09
i0AbuV5U92WQTcb5Ds7XVlcQGbxONqwQd63fSipla09sOisuXzrrf00ZxnMuoIYB
qOSqMIcmvXeNiccFzCP5N+G8YUb3dPuPf+BHpsLzzRfzsMYdJKyePuMFia1pwNvF
Uqfe27C951/92tBUNLRIuLh4paShJPkH1uNQx+JIrvOg/RDdx6iYUrJ/9+MvTAp0
GJg2WYjy8eXa76LImq3rzmgFoa9Gkha9K4BaOy2Z+eDrSlUrJkLLDNYdhIO/q+BO
Dlp3Yv1ZHsvAiSK6iRHFnvG9AxzxoDiVyn6tS6KIDgv9ZjiNCzAsv62hrobid/iD
Bwii2vE0MAPHMJ7180/likbT1xg/C4OVn/J5tijrTPjv8vYK3RLrwjjP+1mZq0VF
Qf/IiADrKPlYfOyioWJnB3QjQowjeEIFw5cLl7O1GwCKBsFPapkW0KO/WA==
-----END CERTIFICATE-----

View File

@ -0,0 +1,7 @@
error: Http Connection
--> ssl/error_self_signed_certificate.hurl:1:5
|
1 | GET https://localhost:8001/hello
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SSL certificate problem
|

View File

@ -0,0 +1,2 @@
3

View File

@ -0,0 +1,4 @@
GET https://localhost:8001/hello
HTTP/1.0 200
```Hello World!```

View File

@ -0,0 +1,2 @@
0

View File

@ -0,0 +1,4 @@
GET https://localhost:8001/hello
HTTP/1.0 200
```Hello World!```

View File

@ -0,0 +1 @@
--insecure

52
integration/ssl/key.pem Normal file
View File

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
d7k8yuCVBMAC0K15osckSqHwcxyAKUQ=
-----END PRIVATE KEY-----

14
integration/ssl/server.py Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/python
from flask import Flask
import os
app = Flask(__name__)
@app.route("/hello")
def hello():
return "Hello World!"
if __name__ == "__main__":
ssl_dir = os.path.dirname(os.path.realpath(__file__))
app.run(port=8001, ssl_context=(ssl_dir + '/cert.pem', ssl_dir + '/key.pem'))