diff --git a/.github/workflows/development.yml b/.github/workflows/development.yml index ccbb461..52bbe41 100644 --- a/.github/workflows/development.yml +++ b/.github/workflows/development.yml @@ -5,6 +5,12 @@ on: branches: - development +env: + CI: true + HEADLESS: true + GITHUB_BRANCH: ${{ github.ref }} + GITHUB_COMMIT: ${{ github.sha }} + jobs: build: runs-on: ${{ matrix.os }} @@ -29,49 +35,51 @@ jobs: - name: npm install run: | npm install - env: - CI: true - name: npm run build run: | npm run build - env: - CI: true - name: npm test run: | npm test - env: - CI: true - name: code coverage if: matrix.os == 'ubuntu-latest' && matrix.node-version == '14.x' uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GITHUB_TOKEN }} path-to-lcov: ./test/coverage/lcov.info - env: - CI: true - name: npm run e2e if: matrix.os == 'ubuntu-latest' && matrix.node-version == '14.x' run: | sudo apt-get update - sudo apt-get install xvfb + sudo apt-get install ca-certificates libnss3-tools xvfb + sudo mkdir -pv /usr/local/share/ca-certificates + sudo cp -v ssl/fritz.box.crt /usr/local/share/ca-certificates/ + sudo chmod 644 /usr/local/share/ca-certificates/* + sudo update-ca-certificates + mkdir -pv ${HOME}/.pki/nssdb + echo > .password + certutil -N -d sql:${HOME}/.pki/nssdb -f .password + certutil -A -d sql:${HOME}/.pki/nssdb -f .password -t "C,," -n "fritz.box" -i ssl/fritz.box.crt + rm -rf .password xvfb-run --auto-servernum -- bash -c "npm run e2e" env: - HEADLESS: true - GITHUB_BRANCH: ${{ github.ref }} - GITHUB_COMMIT: ${{ github.sha }} PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} - name: npm run e2e if: matrix.os == 'macos-latest' && matrix.node-version == '14.x' run: | + sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.Keychain ssl/fritz.box.crt npm run e2e env: - HEADLESS: true - GITHUB_BRANCH: ${{ github.ref }} - GITHUB_COMMIT: ${{ github.sha }} + PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} + - name: npm run e2e + if: matrix.os == 'windows-latest' && matrix.node-version == '14.x' + run: | + certutil -addstore -f "ROOT" ssl\fritz.box.crt + env: PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} - name: archive e2e screenshots uses: actions/upload-artifact@v1 - if: ( matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' ) && matrix.node-version == '14.x' + if: matrix.node-version == '14.x' with: name: Screenshots Development ${{ matrix.os }} ${{ matrix.node-version }} path: e2e/screenshots diff --git a/.github/workflows/feature.yml b/.github/workflows/feature.yml index eabfc9e..168c7a2 100644 --- a/.github/workflows/feature.yml +++ b/.github/workflows/feature.yml @@ -5,13 +5,19 @@ on: branches: - feature/* +env: + CI: true + HEADLESS: true + GITHUB_BRANCH: ${{ github.ref }} + GITHUB_COMMIT: ${{ github.sha }} + jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest] + os: [ubuntu-latest, windows-latest, macos-latest] node-version: [14.x] steps: @@ -29,30 +35,46 @@ jobs: - name: npm install run: | npm install - env: - CI: true - name: npm run build run: | npm run build - env: - CI: true - name: npm test run: | npm test - env: - CI: true - name: npm run e2e + if: matrix.os == 'ubuntu-latest' && matrix.node-version == '14.x' run: | sudo apt-get update - sudo apt-get install xvfb + sudo apt-get install ca-certificates libnss3-tools xvfb + sudo mkdir -pv /usr/local/share/ca-certificates + sudo cp -v ssl/fritz.box.crt /usr/local/share/ca-certificates/ + sudo chmod 644 /usr/local/share/ca-certificates/* + sudo update-ca-certificates + mkdir -pv ${HOME}/.pki/nssdb + echo > .password + certutil -N -d sql:${HOME}/.pki/nssdb -f .password + certutil -A -d sql:${HOME}/.pki/nssdb -f .password -t "C,," -n "fritz.box" -i ssl/fritz.box.crt + rm -rf .password xvfb-run --auto-servernum -- bash -c "npm run e2e" env: - HEADLESS: true - GITHUB_BRANCH: ${{ github.ref }} - GITHUB_COMMIT: ${{ github.sha }} + PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} + - name: npm run e2e + if: matrix.os == 'macos-latest' && matrix.node-version == '14.x' + run: | + sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.Keychain ssl/fritz.box.crt + npm run e2e + env: + PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} + - name: npm run e2e + if: matrix.os == 'windows-latest' && matrix.node-version == '14.x' + run: | + certutil -addstore -f "ROOT" ssl\fritz.box.crt + npm run e2e + env: PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} - name: archive e2e screenshots uses: actions/upload-artifact@v1 + if: matrix.node-version == '14.x' with: name: Screenshots Feature ${{ matrix.os }} ${{ matrix.node-version }} path: e2e/screenshots diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 4d348a8..733e29c 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -5,6 +5,12 @@ on: branches: - master +env: + CI: true + HEADLESS: true + GITHUB_BRANCH: ${{ github.ref }} + GITHUB_COMMIT: ${{ github.sha }} + jobs: build: runs-on: ${{ matrix.os }} @@ -29,31 +35,22 @@ jobs: - name: npm install run: | npm install - env: - CI: true - name: npm run build run: | npm run build - env: - CI: true - name: npm test run: | npm test - env: - CI: true - name: code coverage if: matrix.os == 'ubuntu-latest' && matrix.node-version == '14.x' uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GITHUB_TOKEN }} path-to-lcov: ./test/coverage/lcov.info - env: - CI: true - name: publish code coverage to code climate if: matrix.os == 'ubuntu-latest' && matrix.node-version == '14.x' uses: paambaati/codeclimate-action@v2.6.0 env: - CI: true CC_TEST_REPORTER_ID: ${{ secrets.CODE_CLIMATE }} with: coverageCommand: npm run test @@ -64,25 +61,36 @@ jobs: if: matrix.os == 'ubuntu-latest' && matrix.node-version == '14.x' run: | sudo apt-get update - sudo apt-get install xvfb + sudo apt-get install ca-certificates libnss3-tools xvfb + sudo mkdir -pv /usr/local/share/ca-certificates + sudo cp -v ssl/fritz.box.crt /usr/local/share/ca-certificates/ + sudo chmod 644 /usr/local/share/ca-certificates/* + sudo update-ca-certificates + mkdir -pv ${HOME}/.pki/nssdb + echo > .password + certutil -N -d sql:${HOME}/.pki/nssdb -f .password + certutil -A -d sql:${HOME}/.pki/nssdb -f .password -t "C,," -n "fritz.box" -i ssl/fritz.box.crt + rm -rf .password xvfb-run --auto-servernum -- bash -c "npm run e2e" env: - HEADLESS: true - GITHUB_BRANCH: ${{ github.ref }} - GITHUB_COMMIT: ${{ github.sha }} PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} - name: npm run e2e if: matrix.os == 'macos-latest' && matrix.node-version == '14.x' run: | + sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.Keychain ssl/fritz.box.crt + npm run e2e + env: + PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} + - name: npm run e2e + if: matrix.os == 'windows-latest' && matrix.node-version == '14.x' + run: | + certutil -addstore -f "ROOT" ssl\fritz.box.crt npm run e2e env: - HEADLESS: true - GITHUB_BRANCH: ${{ github.ref }} - GITHUB_COMMIT: ${{ github.sha }} PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} - name: archive e2e screenshots uses: actions/upload-artifact@v1 - if: ( matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' ) && matrix.node-version == '14.x' + if: matrix.node-version == '14.x' with: name: Screenshots Master ${{ matrix.os }} ${{ matrix.node-version }} path: e2e/screenshots @@ -91,7 +99,6 @@ jobs: id: createrelease uses: gregoranders/nodejs-create-release@v0.0.6 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} with: tag: v${{ steps.projectinfo.outputs.version }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 93d92cf..1ba21c1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,6 +5,12 @@ on: types: - edited +env: + CI: true + HEADLESS: true + GITHUB_BRANCH: ${{ github.ref }} + GITHUB_COMMIT: ${{ github.sha }} + jobs: build: runs-on: ${{ matrix.os }} @@ -29,26 +35,27 @@ jobs: - name: npm install run: | npm install - env: - CI: true - name: npm run build run: | npm run build - env: - CI: true - name: npm test run: | npm test - env: - CI: true - name: npm run e2e run: | sudo apt-get update - sudo apt-get install xvfb + sudo apt-get install ca-certificates libnss3-tools xvfb + sudo mkdir -pv /usr/local/share/ca-certificates + sudo cp -v ssl/fritz.box.crt /usr/local/share/ca-certificates/ + sudo chmod 644 /usr/local/share/ca-certificates/* + sudo update-ca-certificates + mkdir -pv ${HOME}/.pki/nssdb + echo > .password + certutil -N -d sql:${HOME}/.pki/nssdb -f .password + certutil -A -d sql:${HOME}/.pki/nssdb -f .password -t "C,," -n "fritz.box" -i ssl/fritz.box.crt + rm -rf .password xvfb-run --auto-servernum -- bash -c "npm run e2e" env: - GITHUB_BRANCH: ${{ github.ref }} - GITHUB_COMMIT: ${{ github.sha }} PACKAGE_JSON: ${{ steps.projectinfo.outputs.context }} - name: archive e2e screenshots uses: actions/upload-artifact@v1 diff --git a/Dockerfile b/Dockerfile index 3c78da8..850d74f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,8 @@ FROM alpine:latest COPY ./docker/docker-entrypoint.sh ./docker/docker-cmd.sh \ ./docker/docker-healthcheck.sh \ - ./docker/fritz.box.crt ./docker/fritz.box.pem \ - ./docker/development.fritz.box.crt ./docker/development.fritz.box.key / + ./ssl/fritz.box.crt ./ssl/fritz.box.pem \ + ./ssl/development.fritz.box.crt ./ssl/development.fritz.box.key / COPY ./docker/nginx.conf /etc/nginx/nginx.conf diff --git a/docker/development.fritz.box.crt b/docker/development.fritz.box.crt deleted file mode 100644 index 32d661a..0000000 --- a/docker/development.fritz.box.crt +++ /dev/null @@ -1,95 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - 60:7d:58:ff:8b:29:2c:10:8f:7a:8c:95:59:fe:1a:58 - Signature Algorithm: sha256WithRSAEncryption - Issuer: C=DE, ST=NRW, L=Euskirchen, O=Fritz BOX, OU=Fritz Box CA, CN=Easy-RSA CA/emailAddress=ca@fritz.box - Validity - Not Before: May 10 13:19:28 2020 GMT - Not After : May 10 13:19:28 2021 GMT - Subject: C=DE, ST=NRW, L=Euskirchen, O=Fritz BOX, OU=Fritz Box CA, CN=development.fritz.box/emailAddress=ca@fritz.box - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public-Key: (2048 bit) - Modulus: - 00:eb:1f:e1:92:e1:72:d1:b8:c9:37:a0:b9:71:6b: - 73:d2:81:01:a7:f4:2b:84:00:db:0f:02:61:3f:77: - f8:6c:ff:4a:49:90:ff:18:16:52:4f:89:83:e8:39: - 47:64:a2:b8:56:68:ce:a2:56:e8:ed:a9:48:3b:9f: - 7a:3f:94:ba:af:3e:b5:25:60:97:45:0a:3b:dc:b3: - 87:64:c6:2a:2a:eb:fe:9c:49:63:ca:18:53:bc:ad: - cf:7b:b3:81:0d:1c:51:5d:81:14:3a:44:2c:71:6e: - a5:1b:46:a8:0b:ae:aa:ba:cb:c7:65:2f:e1:a1:7b: - f5:38:50:92:d2:b3:31:e2:d2:ff:81:22:66:ae:30: - be:0a:37:fa:e7:fd:aa:94:ad:8b:11:5e:44:e0:a9: - b5:33:99:03:30:f6:89:0a:4c:6b:58:64:22:b2:ad: - de:35:1b:b3:c3:da:0e:3b:3d:aa:8e:53:b7:cf:53: - af:41:e2:ae:ca:80:a9:e3:dc:a0:80:42:56:26:ef: - 66:95:f0:83:79:9c:89:19:41:84:0d:00:92:75:5d: - c7:bf:c0:b4:e9:f5:7f:25:8e:3f:92:48:fe:96:cf: - 60:f6:e8:d8:b6:41:9f:72:15:66:24:db:09:30:e7: - 2b:c8:da:55:ae:6b:b7:8e:c9:d8:1a:3d:0d:c7:9b: - 16:89 - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - X509v3 Subject Key Identifier: - 5B:AC:B0:50:25:F5:68:C1:F5:72:56:18:E5:02:0E:D4:DB:38:A3:69 - X509v3 Authority Key Identifier: - keyid:55:89:7F:BA:3C:DE:8D:1B:7E:8D:10:C9:DB:40:E1:B1:42:70:13:6D - DirName:/C=DE/ST=NRW/L=Euskirchen/O=Fritz BOX/OU=Fritz Box CA/CN=Easy-RSA CA/emailAddress=ca@fritz.box - serial:66:85:9C:03:D3:26:01:B5:07:AA:D5:0F:CE:3F:8F:CE:5C:4D:89:15 - - X509v3 Extended Key Usage: - TLS Web Server Authentication - X509v3 Key Usage: - Digital Signature, Key Encipherment - X509v3 Subject Alternative Name: - DNS:development.fritz.box - Signature Algorithm: sha256WithRSAEncryption - a2:ac:e0:b9:22:65:32:4d:7a:e2:fa:aa:70:ef:24:e2:62:b8: - 2a:6b:57:f9:4c:10:ad:b6:03:ee:44:08:52:f4:1a:2c:fc:45: - 78:b0:29:a0:ce:41:af:0b:26:4d:c6:21:fb:6a:1d:47:63:05: - 8c:a0:14:e2:c1:f8:96:25:ff:3b:89:a5:bd:44:a3:00:a6:a1: - f4:d8:40:55:2f:a3:82:08:14:a1:d6:26:70:ee:26:2e:0c:38: - 6d:c5:f8:33:3a:b6:74:d2:44:37:97:ad:41:0c:e0:10:4e:68: - 27:f3:c2:8d:cf:4f:89:6f:d4:d1:3e:03:2c:6a:ba:fd:af:59: - 75:60:db:97:19:4f:3c:04:e2:95:23:59:4d:85:48:89:20:a1: - 86:12:73:8b:b7:a4:bd:c6:55:ab:79:68:00:f2:38:04:4d:4b: - 5e:02:a3:43:5f:b8:ff:b6:8f:c7:c0:47:dd:16:99:2a:c0:5b: - fe:04:7e:82:d1:04:8e:05:28:a6:ac:62:08:b7:ee:46:37:5c: - c7:b9:ea:e3:90:2e:e4:a9:24:5b:a4:0c:d5:f9:9a:bc:ab:bb: - 43:6a:e4:92:a6:1b:80:d4:17:fa:c7:b1:5f:fe:0d:98:8d:04: - ac:a2:cb:fb:1e:e4:3b:d2:45:06:0f:15:de:1f:b1:23:1a:18: - 47:cf:2d:fd ------BEGIN CERTIFICATE----- -MIIE9zCCA9+gAwIBAgIQYH1Y/4spLBCPeoyVWf4aWDANBgkqhkiG9w0BAQsFADCB -jjELMAkGA1UEBhMCREUxDDAKBgNVBAgMA05SVzETMBEGA1UEBwwKRXVza2lyY2hl -bjESMBAGA1UECgwJRnJpdHogQk9YMRUwEwYDVQQLDAxGcml0eiBCb3ggQ0ExFDAS -BgNVBAMMC0Vhc3ktUlNBIENBMRswGQYJKoZIhvcNAQkBFgxjYUBmcml0ei5ib3gw -HhcNMjAwNTEwMTMxOTI4WhcNMjEwNTEwMTMxOTI4WjCBmDELMAkGA1UEBhMCREUx -DDAKBgNVBAgMA05SVzETMBEGA1UEBwwKRXVza2lyY2hlbjESMBAGA1UECgwJRnJp -dHogQk9YMRUwEwYDVQQLDAxGcml0eiBCb3ggQ0ExHjAcBgNVBAMMFWRldmVsb3Bt -ZW50LmZyaXR6LmJveDEbMBkGCSqGSIb3DQEJARYMY2FAZnJpdHouYm94MIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6x/hkuFy0bjJN6C5cWtz0oEBp/Qr -hADbDwJhP3f4bP9KSZD/GBZST4mD6DlHZKK4VmjOolbo7alIO596P5S6rz61JWCX -RQo73LOHZMYqKuv+nEljyhhTvK3Pe7OBDRxRXYEUOkQscW6lG0aoC66qusvHZS/h -oXv1OFCS0rMx4tL/gSJmrjC+Cjf65/2qlK2LEV5E4Km1M5kDMPaJCkxrWGQisq3e -NRuzw9oOOz2qjlO3z1OvQeKuyoCp49yggEJWJu9mlfCDeZyJGUGEDQCSdV3Hv8C0 -6fV/JY4/kkj+ls9g9ujYtkGfchVmJNsJMOcryNpVrmu3jsnYGj0Nx5sWiQIDAQAB -o4IBQzCCAT8wCQYDVR0TBAIwADAdBgNVHQ4EFgQUW6ywUCX1aMH1clYY5QIO1Ns4 -o2kwgc4GA1UdIwSBxjCBw4AUVYl/ujzejRt+jRDJ20DhsUJwE22hgZSkgZEwgY4x -CzAJBgNVBAYTAkRFMQwwCgYDVQQIDANOUlcxEzARBgNVBAcMCkV1c2tpcmNoZW4x -EjAQBgNVBAoMCUZyaXR6IEJPWDEVMBMGA1UECwwMRnJpdHogQm94IENBMRQwEgYD -VQQDDAtFYXN5LVJTQSBDQTEbMBkGCSqGSIb3DQEJARYMY2FAZnJpdHouYm94ghRm -hZwD0yYBtQeq1Q/OP4/OXE2JFTATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8E -BAMCBaAwIAYDVR0RBBkwF4IVZGV2ZWxvcG1lbnQuZnJpdHouYm94MA0GCSqGSIb3 -DQEBCwUAA4IBAQCirOC5ImUyTXri+qpw7yTiYrgqa1f5TBCttgPuRAhS9Bos/EV4 -sCmgzkGvCyZNxiH7ah1HYwWMoBTiwfiWJf87iaW9RKMApqH02EBVL6OCCBSh1iZw -7iYuDDhtxfgzOrZ00kQ3l61BDOAQTmgn88KNz0+Jb9TRPgMsarr9r1l1YNuXGU88 -BOKVI1lNhUiJIKGGEnOLt6S9xlWreWgA8jgETUteAqNDX7j/to/HwEfdFpkqwFv+ -BH6C0QSOBSimrGIIt+5GN1zHuerjkC7kqSRbpAzV+Zq8q7tDauSSphuA1Bf6x7Ff -/g2YjQSsosv7HuQ70kUGDxXeH7EjGhhHzy39 ------END CERTIFICATE----- diff --git a/docker/development.fritz.box.key b/docker/development.fritz.box.key deleted file mode 100644 index c443cd8..0000000 --- a/docker/development.fritz.box.key +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDrH+GS4XLRuMk3 -oLlxa3PSgQGn9CuEANsPAmE/d/hs/0pJkP8YFlJPiYPoOUdkorhWaM6iVujtqUg7 -n3o/lLqvPrUlYJdFCjvcs4dkxioq6/6cSWPKGFO8rc97s4ENHFFdgRQ6RCxxbqUb -RqgLrqq6y8dlL+Ghe/U4UJLSszHi0v+BImauML4KN/rn/aqUrYsRXkTgqbUzmQMw -9okKTGtYZCKyrd41G7PD2g47PaqOU7fPU69B4q7KgKnj3KCAQlYm72aV8IN5nIkZ -QYQNAJJ1Xce/wLTp9X8ljj+SSP6Wz2D26Ni2QZ9yFWYk2wkw5yvI2lWua7eOydga -PQ3HmxaJAgMBAAECggEBALdPwNd6C8G0lrRXC52Az+kjiT3/oNmmrSMzkMwh5b5c -/vcCI9AMvxmhtgSce6vbLWq5BbkNl0aLf3R0rqPZef7dHe/JMcay5t733SxVT1Tt -bzE8Cp/qfYaR4DyqQ4gMNud2lmWi9x9syy7L1IJfKF7AN3INdZUoBpRkRUQeT1tt -9Pnem8ItSULWQkjVU72p0nhttGi5HbZ7q0vN6Xn1FcyGeSnxTfP9nyvo3pOF3xNA -kmrrJohCiOrkAiNXFTex0aA7UOS1bCsMbiXUigNt+Iio8dx+/7+pupERqqIKWM+d -t5ksNnvrouo8hQuyx87fBUtMhL8a5r5ONYcJchc68HECgYEA+zYMzxaAoazlNOmb -8pdrdyKtuQporRjHBZj0mYdS2/1GrT7pbMvQwe8XHvkzia0QrmCs2Hb09cl7PfWg -hriias2VcspIB/Rd49ATeTkEE15auMxhvkCR4FLK3+eBgXeELe0EmAHNgRXN9Zbe -5oQYbb59ZTVCwDEVtU4cr+HQbw0CgYEA75tTc2ynioE6t+3rfk5Yuohk21kMtQlS -jixD/BFqBZcgdN0qibRjjedMnVFmGVvgBTstpfNSM+3P6WazYe3JqxjVmGNRTKCA -q4mRhvAQYJ0+rZVy9AsBx1KGJk5R2m8MtxR5aQ1OIar6cLqY5j9y/QSeAKdBnhoY -YeFpA9/nhm0CgYBMVS4rNwE7H1g+bcXPPyeOeeEj2v/XqTHAh6u7gx0wb5OsTPOM -9ZmndEkoRjzc1tO8yO98jxj8Ho7uUtbGWRAxN+rziHe+wwhMkwt3yFVutTsH8EK7 -Fs+8xCuVQbleZ7yoX98HeXTChqeguolcrkLmBf4AZOC1mbSo9OVOpGU7eQKBgFDu -Lem2sYBe1e56NiibXezjVO2hzmD3nSLYYL4rQ5xPx26xpUSN4XJ0xbP9Ynb+SVR7 -AJgk74cKtEcpoT1ai9t2r+6g3Tz8mXlXJghl3aJEen83E3TKovcoMJePrKYTDEBq -cffBvrowfhbFcA+VLsm3XYbq94bnWYT2FfpxDkqhAoGADJrQ2bUpxfuRVx1woYd4 -3gHxCBxQ7CS+8t7SItLxQ3BIM0FQPmuoCu9n5lVLla0qGG7pQaudYG7FKNdFJCT/ -X/pWPMQ01OUaLLzsA9Uk2q9dqUzL309j+txKR2tVj12eJ75EXdr0vu3IbEZ7Xsgu -du/9XvZhM6HNsiPCt8449C8= ------END PRIVATE KEY----- diff --git a/docker/development.fritz.box.pem b/docker/development.fritz.box.pem deleted file mode 100644 index f586f92..0000000 --- a/docker/development.fritz.box.pem +++ /dev/null @@ -1,29 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIE9zCCA9+gAwIBAgIQYH1Y/4spLBCPeoyVWf4aWDANBgkqhkiG9w0BAQsFADCB -jjELMAkGA1UEBhMCREUxDDAKBgNVBAgMA05SVzETMBEGA1UEBwwKRXVza2lyY2hl -bjESMBAGA1UECgwJRnJpdHogQk9YMRUwEwYDVQQLDAxGcml0eiBCb3ggQ0ExFDAS -BgNVBAMMC0Vhc3ktUlNBIENBMRswGQYJKoZIhvcNAQkBFgxjYUBmcml0ei5ib3gw -HhcNMjAwNTEwMTMxOTI4WhcNMjEwNTEwMTMxOTI4WjCBmDELMAkGA1UEBhMCREUx -DDAKBgNVBAgMA05SVzETMBEGA1UEBwwKRXVza2lyY2hlbjESMBAGA1UECgwJRnJp -dHogQk9YMRUwEwYDVQQLDAxGcml0eiBCb3ggQ0ExHjAcBgNVBAMMFWRldmVsb3Bt -ZW50LmZyaXR6LmJveDEbMBkGCSqGSIb3DQEJARYMY2FAZnJpdHouYm94MIIBIjAN -BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6x/hkuFy0bjJN6C5cWtz0oEBp/Qr -hADbDwJhP3f4bP9KSZD/GBZST4mD6DlHZKK4VmjOolbo7alIO596P5S6rz61JWCX -RQo73LOHZMYqKuv+nEljyhhTvK3Pe7OBDRxRXYEUOkQscW6lG0aoC66qusvHZS/h -oXv1OFCS0rMx4tL/gSJmrjC+Cjf65/2qlK2LEV5E4Km1M5kDMPaJCkxrWGQisq3e -NRuzw9oOOz2qjlO3z1OvQeKuyoCp49yggEJWJu9mlfCDeZyJGUGEDQCSdV3Hv8C0 -6fV/JY4/kkj+ls9g9ujYtkGfchVmJNsJMOcryNpVrmu3jsnYGj0Nx5sWiQIDAQAB -o4IBQzCCAT8wCQYDVR0TBAIwADAdBgNVHQ4EFgQUW6ywUCX1aMH1clYY5QIO1Ns4 -o2kwgc4GA1UdIwSBxjCBw4AUVYl/ujzejRt+jRDJ20DhsUJwE22hgZSkgZEwgY4x -CzAJBgNVBAYTAkRFMQwwCgYDVQQIDANOUlcxEzARBgNVBAcMCkV1c2tpcmNoZW4x -EjAQBgNVBAoMCUZyaXR6IEJPWDEVMBMGA1UECwwMRnJpdHogQm94IENBMRQwEgYD -VQQDDAtFYXN5LVJTQSBDQTEbMBkGCSqGSIb3DQEJARYMY2FAZnJpdHouYm94ghRm -hZwD0yYBtQeq1Q/OP4/OXE2JFTATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8E -BAMCBaAwIAYDVR0RBBkwF4IVZGV2ZWxvcG1lbnQuZnJpdHouYm94MA0GCSqGSIb3 -DQEBCwUAA4IBAQCirOC5ImUyTXri+qpw7yTiYrgqa1f5TBCttgPuRAhS9Bos/EV4 -sCmgzkGvCyZNxiH7ah1HYwWMoBTiwfiWJf87iaW9RKMApqH02EBVL6OCCBSh1iZw -7iYuDDhtxfgzOrZ00kQ3l61BDOAQTmgn88KNz0+Jb9TRPgMsarr9r1l1YNuXGU88 -BOKVI1lNhUiJIKGGEnOLt6S9xlWreWgA8jgETUteAqNDX7j/to/HwEfdFpkqwFv+ -BH6C0QSOBSimrGIIt+5GN1zHuerjkC7kqSRbpAzV+Zq8q7tDauSSphuA1Bf6x7Ff -/g2YjQSsosv7HuQ70kUGDxXeH7EjGhhHzy39 ------END CERTIFICATE----- diff --git a/docker/fritz.box.crt b/docker/fritz.box.crt deleted file mode 100644 index 8bf1430..0000000 --- a/docker/fritz.box.crt +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIUZoWcA9MmAbUHqtUPzj+PzlxNiRUwDQYJKoZIhvcNAQEL -BQAwgY4xCzAJBgNVBAYTAkRFMQwwCgYDVQQIDANOUlcxEzARBgNVBAcMCkV1c2tp -cmNoZW4xEjAQBgNVBAoMCUZyaXR6IEJPWDEVMBMGA1UECwwMRnJpdHogQm94IENB -MRQwEgYDVQQDDAtFYXN5LVJTQSBDQTEbMBkGCSqGSIb3DQEJARYMY2FAZnJpdHou -Ym94MB4XDTIwMDUxMDEzMTkyM1oXDTIyMDYxNzEzMTkyM1owgY4xCzAJBgNVBAYT -AkRFMQwwCgYDVQQIDANOUlcxEzARBgNVBAcMCkV1c2tpcmNoZW4xEjAQBgNVBAoM -CUZyaXR6IEJPWDEVMBMGA1UECwwMRnJpdHogQm94IENBMRQwEgYDVQQDDAtFYXN5 -LVJTQSBDQTEbMBkGCSqGSIb3DQEJARYMY2FAZnJpdHouYm94MIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzRr/RjhT+C7JZPztsJsxFDjEPGT4vsMo6Mee -XCep8a695J2I1L7l2zUthDZyyQg+ntKxulYxlT8opYucxkD7GoQgsQ6wjk7vfUi9 -OT76pZbOc0UInZsvR0JjDTCoNW1nIIaNKVdMQLvyzZkx5P4pdXRDW6ekYnv8owh2 -vy3FQddiLARTf9R3LHrykM7I12nEVSGHzcnKTxXRIP838gYALmsJo3DqMND79wJC -mkhFnWemxIFea425k0bOWqal9GMQK/atbXy/MNuIvz12VxDsyid5btnRX//nYExQ -4GiNjM887MERI8NUddaHlevS+r2hrzzDJarZup/jQ/xd1sjWJwIDAQABo4IBDzCC -AQswHQYDVR0OBBYEFFWJf7o83o0bfo0QydtA4bFCcBNtMIHOBgNVHSMEgcYwgcOA -FFWJf7o83o0bfo0QydtA4bFCcBNtoYGUpIGRMIGOMQswCQYDVQQGEwJERTEMMAoG -A1UECAwDTlJXMRMwEQYDVQQHDApFdXNraXJjaGVuMRIwEAYDVQQKDAlGcml0eiBC -T1gxFTATBgNVBAsMDEZyaXR6IEJveCBDQTEUMBIGA1UEAwwLRWFzeS1SU0EgQ0Ex -GzAZBgkqhkiG9w0BCQEWDGNhQGZyaXR6LmJveIIUZoWcA9MmAbUHqtUPzj+PzlxN -iRUwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEB -AATn7PfnomQ0Q9uWMABSGJoQqQaMnZNELp6qz7cbAxBFwm11sjK2RqJQ15xghrc/ -QULrLZD6GvAb0hQV7BGYBQsCpuUu3Rv89W0s3ZB0C/U4fuYoETRYxhDtZMtGD3qf -gBYbTsEdVYmwH33M+jAALXvc/NvX4TGMrfK4fJb0KAsE2wDQPa1IgG92DBllR4IV -4eGH7z1gTIS1bfw4bKNsM/HTNfcZ49/f6WgSUbNU8UKirWaL5ZYlvGDd42GkQznF -uVI8sW5iE7WqMKqTO5fTmjeqUiKxo07G9rymmIL91AzoO8lajS2Iv+BT4h975xQs -a05ZTxwqq0H4zguDA6Nr1Os= ------END CERTIFICATE----- diff --git a/docker/fritz.box.pem b/docker/fritz.box.pem deleted file mode 100644 index 8021bdb..0000000 --- a/docker/fritz.box.pem +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN X509 CRL----- -MIICsDCCAZgCAQEwDQYJKoZIhvcNAQELBQAwgY4xCzAJBgNVBAYTAkRFMQwwCgYD -VQQIDANOUlcxEzARBgNVBAcMCkV1c2tpcmNoZW4xEjAQBgNVBAoMCUZyaXR6IEJP -WDEVMBMGA1UECwwMRnJpdHogQm94IENBMRQwEgYDVQQDDAtFYXN5LVJTQSBDQTEb -MBkGCSqGSIb3DQEJARYMY2FAZnJpdHouYm94Fw0yMDA1MTAxMzE5MjRaFw0yMDEx -MDYxMzE5MjRaoIHUMIHRMIHOBgNVHSMEgcYwgcOAFFWJf7o83o0bfo0QydtA4bFC -cBNtoYGUpIGRMIGOMQswCQYDVQQGEwJERTEMMAoGA1UECAwDTlJXMRMwEQYDVQQH -DApFdXNraXJjaGVuMRIwEAYDVQQKDAlGcml0eiBCT1gxFTATBgNVBAsMDEZyaXR6 -IEJveCBDQTEUMBIGA1UEAwwLRWFzeS1SU0EgQ0ExGzAZBgkqhkiG9w0BCQEWDGNh -QGZyaXR6LmJveIIUZoWcA9MmAbUHqtUPzj+PzlxNiRUwDQYJKoZIhvcNAQELBQAD -ggEBAGno1Q1iAQhZ4c03ZZoXcdZZjoa5ZC7KXLzKjNmV2jcxGkpF8Q1Z1Wfd7QMg -Zw/B5iqXroQCPX+bGR2OwdDyDapMax5yZrEwP5CNTfJR3o/qaOC4hRsnI65vrfth -cY6F7OBrDaNbajWHjIuppDkcxToAqbLQZcqhejxCVkoCeNpT0Se4dGFvK125kNcy -vAK9XpnrSnaSwyYTkFxWYRvDBS0pMpX60+eWPo+PnhydnV7iJL6Lwv/Q3tk21aF8 -s7X9WEmPCoU/JgIJgLumigE7mZzEfD2UqsSCy+wrediak0L0TcHmpIqSJmBU3zy4 -4WjjjhrBlzxKLq16eWQinHvGje4= ------END X509 CRL----- diff --git a/e2e/index.spec.ts b/e2e/index.spec.ts index 065c1b8..0ff4447 100644 --- a/e2e/index.spec.ts +++ b/e2e/index.spec.ts @@ -1,5 +1,5 @@ import { Browser, devices } from 'puppeteer'; -import { mkdir, timeout, url, customSnapshotsDir, customDiffDir } from './setup'; +import { customDiffDir, customSnapshotsDir, mkdir, timeout, url } from './setup'; declare const browser: Browser; diff --git a/e2e/setup.ts b/e2e/setup.ts index e60f313..214cc0e 100644 --- a/e2e/setup.ts +++ b/e2e/setup.ts @@ -5,11 +5,17 @@ import { version } from '../package.json'; import 'expect-puppeteer'; // import 'jest-puppeteer'; -// eslint-disable-next-line @typescript-eslint/no-var-requires -const jestPuppeteerConfig = require('../jest-puppeteer.config.js'); +declare const puppeteerConfig: { + server: { + host: string; + port: number; + ssl: boolean; + }; +}; export const timeout = 10000; -export const url = `http://127.0.0.1:${jestPuppeteerConfig.server.port}`; +export const proto = `http${puppeteerConfig.server.ssl ? 's' : ''}`; +export const url = `${proto}://${puppeteerConfig.server.host}:${puppeteerConfig.server.port}`; export const customSnapshotsDir = join('e2e', 'screenshots', version); export const customDiffDir = join(customSnapshotsDir, 'diff'); diff --git a/jest-puppeteer.config.js b/jest-puppeteer.config.js index b5e0b25..0738477 100644 --- a/jest-puppeteer.config.js +++ b/jest-puppeteer.config.js @@ -1,6 +1,16 @@ /* eslint-disable @typescript-eslint/no-var-requires */ -const cmd = `cross-env-shell NODE_PORT=${process.env.NODE_PORT}`; -const command = `${cmd} && npm run ${process.env.NODE_E2E === 'esm' ? 'serve' : 'e2e:serve'}`; +const portfinder = require('portfinder-sync'); +const packageJson = require('./package.json'); + +const port = portfinder.getPort(packageJson.baseport); +const command = `cross-env NODE_PORT=${port} NODE_ENV=production npm run ${process.env.NODE_E2E === 'esm' ? 'serve' : 'e2e:serve'}`; + +const args = ['--enable-experimental-web-platform-features']; + +// Did not manage to get self signed certs working on macos +if (process.platform === 'darwin') { + args.push('--allow-insecure-localhost'); +} module.exports = { browser: 'chromium', @@ -8,11 +18,13 @@ module.exports = { launch: { dumpio: true, headless: process.env.HEADLESS !== 'false', - args: ['--enable-experimental-web-platform-features'] + args }, server: { command, - port: process.env.NODE_PORT, + port, + ssl: true, + host: process.env.NODE_HOST || 'localhost', launchTimeout: 10000, debug: true, }, diff --git a/package.json b/package.json index ed8afc9..8a7b375 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,9 @@ "test:update": "npm run test -- -u", "watch-test": "npm run test -- --watch", "e2e:serve": "webpack-dev-server --config ./e2e/webpack.config.js --quiet true --liveReload false --inline false", - "e2e": "cross-env-shell NODE_PORT=$(ts-node --project ./scripts/tsconfig.json ./scripts/findport.ts) NODE_E2E=webpack jest --testTimeout=60000 --runInBand --reporters=jest-spec-reporter --preset=jest-puppeteer --rootDir ./e2e", - "serve": "ts-node ./scripts/server.ts", - "e2e:esm": "cross-env-shell NODE_PORT=$(ts-node --project ./scripts/tsconfig.json ./scripts/findport.ts) NODE_E2E=esm jest --testTimeout=60000 --runInBand --reporters=jest-spec-reporter --preset=jest-puppeteer --rootDir ./e2e", + "e2e": "cross-env NODE_E2E=webpack jest --runInBand --testTimeout=60000 --runInBand --reporters=jest-spec-reporter --preset=jest-puppeteer --rootDir ./e2e", + "serve": "ts-node --project ./scripts/tsconfig.json ./scripts/server.ts", + "e2e:esm": "cross-env NODE_E2E=esm jest --runInBand --testTimeout=60000 --runInBand --reporters=jest-spec-reporter --preset=jest-puppeteer --rootDir ./e2e", "livereload": "livereloadx -a ./public", "prescript": "rimraf ./public/script", "script": "tsc --project ./src/script/tsconfig.build.json --outDir ./public/script", @@ -213,13 +213,13 @@ "homepage": "https://gregoranders.github.io/ts-react-playground/", "devDependencies": { "@babel/core": "7.10.2", - "@devexpress/dx-react-chart": "2.6.3", - "@devexpress/dx-react-chart-material-ui": "2.6.3", - "@devexpress/dx-react-core": "2.6.3", - "@fortawesome/fontawesome-svg-core": "1.2.28", + "@devexpress/dx-react-chart": "2.6.4", + "@devexpress/dx-react-chart-material-ui": "2.6.4", + "@devexpress/dx-react-core": "2.6.4", + "@fortawesome/fontawesome-svg-core": "1.2.29", "@fortawesome/free-brands-svg-icons": "5.13.1", - "@fortawesome/free-regular-svg-icons": "5.13.0", - "@fortawesome/free-solid-svg-icons": "5.13.0", + "@fortawesome/free-regular-svg-icons": "5.13.1", + "@fortawesome/free-solid-svg-icons": "5.13.1", "@fortawesome/react-fontawesome": "0.1.11", "@material-ui/core": "4.10.2", "@material-ui/icons": "4.9.1", @@ -296,8 +296,8 @@ "d3-time-format": "2.2.3", "enzyme": "3.11.0", "enzyme-adapter-react-16": "1.15.2", - "es-module-shims": "0.4.6", - "eslint": "7.2.0", + "es-module-shims": "0.4.7", + "eslint": "7.3.0", "eslint-config-prettier": "6.11.0", "eslint-plugin-prettier": "3.1.4", "eslint-plugin-react": "7.20.0", @@ -343,7 +343,7 @@ "recharts": "1.8.5", "recoil": "0.0.10", "rimraf": "3.0.2", - "rollup": "2.17.0", + "rollup": "2.17.1", "sass-loader": "8.0.2", "source-map": "0.7.3", "ts-jest": "26.1.0", diff --git a/scripts/server.ts b/scripts/server.ts index 082baaf..998cef1 100644 --- a/scripts/server.ts +++ b/scripts/server.ts @@ -1,18 +1,18 @@ -// import * as fs from 'fs'; +import * as fs from 'fs'; import * as compression from 'compression'; import * as express from 'express'; -import * as https from 'http'; +import * as https from 'https'; import * as path from 'path'; +import * as portfinder from 'portfinder-sync'; import { baseport } from '../package.json'; // import { api } from './controller'; -const hostname = 'localhost'; const staticPath: string = path.join(__dirname, '..', 'public'); const application = express(); -application.set('port', process.env.NODE_PORT || baseport); +application.set('port', process.env.NODE_PORT || portfinder.getPort(baseport)); application.use(compression()); application.use('/ts-react-playground', express.static(staticPath)); @@ -23,14 +23,18 @@ application.use((req: express.Request, res: express.Response) => { res.sendFile(path.join(staticPath, 'index.html')); }); +const sslPath = path.resolve(__dirname, '..', 'ssl'); + const httpOptions = { - // key: fs.readFileSync(path.resolve(__dirname, 'certs', 'key.pem')), - // cert: fs.readFileSync(path.resolve(__dirname, 'certs', 'cert.pem')), + key: fs.readFileSync(path.resolve(sslPath, 'development.fritz.box.key')), + cert: fs.readFileSync(path.resolve(sslPath, 'development.fritz.box.crt')), }; -https.createServer(httpOptions, application).listen(application.get('port'), () => { +const server = https.createServer(httpOptions, application); + +server.listen(application.get('port'), () => { console.log( - ` App is running at http://${hostname}:%d in %s mode (%s) (%s)`, + ` Server is running at https://localhost:%d in %s mode\n %s`, application.get('port'), application.get('env'), staticPath, diff --git a/ssl/development.fritz.box.crt b/ssl/development.fritz.box.crt new file mode 100644 index 0000000..b46f148 --- /dev/null +++ b/ssl/development.fritz.box.crt @@ -0,0 +1,98 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: + be:e5:bb:c3:29:f0:fa:d4:ac:1f:87:91:4d:d7:34:c2 + Signature Algorithm: sha256WithRSAEncryption + Issuer: C=DE, ST=NRW, L=Euskirchen, O=ts-react-playground, OU=ts-react-playground ca, CN=ts-react-playground/emailAddress=ca@ts-react-playground + Validity + Not Before: Jun 19 15:40:06 2020 GMT + Not After : Jun 17 15:40:06 2030 GMT + Subject: C=DE, ST=NRW, L=Euskirchen, O=ts-react-playground, OU=ts-react-playground ca, CN=development.fritz.box/emailAddress=ca@ts-react-playground + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + RSA Public-Key: (2048 bit) + Modulus: + 00:f1:12:9a:ba:e6:02:a2:ef:f1:20:52:fa:bd:9f: + f7:5a:f4:ab:77:b4:b0:28:7f:00:32:e2:0d:fd:43: + 88:a0:d5:28:ed:a1:e8:a4:21:0c:c1:9c:98:b8:7c: + d6:21:f9:c9:6f:a4:f2:c8:e9:95:aa:fe:fa:ee:b9: + 06:a3:fa:2b:1d:2e:cc:df:61:1e:ae:24:7d:49:70: + 30:01:bd:21:01:ff:d4:ab:be:08:2d:47:91:36:4a: + 43:be:37:07:38:4c:79:ae:17:b1:e4:af:0f:b4:db: + 6c:62:3e:45:20:b1:d4:ee:53:b0:47:0d:68:dc:c3: + b9:29:60:d4:8e:ee:32:38:79:48:e8:53:2c:4c:3b: + c7:2a:dd:e9:f6:5f:aa:48:6a:3c:ed:71:10:a2:d6: + c7:f1:20:4a:74:c4:04:67:0b:b2:5d:f2:94:6b:62: + e7:41:c3:e9:d5:66:6d:19:c2:d0:ef:7e:a4:20:e8: + 48:c1:ee:9e:57:07:2c:1a:75:80:4a:e6:d1:94:4e: + 7c:b6:b1:28:81:e8:b4:3c:87:a2:2a:0b:25:0f:a3: + 8a:66:0a:eb:5f:dd:ba:31:99:54:74:67:ce:21:08: + ee:37:17:bc:29:e3:b6:e7:57:16:15:a7:ae:da:84: + da:2f:af:30:f9:d5:42:01:a3:37:0f:b2:06:41:62: + 08:ef + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + X509v3 Subject Key Identifier: + 15:91:D8:C1:40:66:DB:F0:A6:81:B0:D5:33:91:48:CC:1F:41:1E:ED + X509v3 Authority Key Identifier: + keyid:D2:38:28:48:52:2D:0F:E7:B9:B1:C9:14:63:08:95:B9:EB:E0:81:06 + DirName:/C=DE/ST=NRW/L=Euskirchen/O=ts-react-playground/OU=ts-react-playground ca/CN=ts-react-playground/emailAddress=ca@ts-react-playground + serial:4F:87:B8:BB:A5:3D:BE:CC:43:2F:6D:95:AE:DD:4D:04:42:7B:E6:E4 + + X509v3 Extended Key Usage: + TLS Web Server Authentication + X509v3 Key Usage: + Digital Signature, Key Encipherment + X509v3 Subject Alternative Name: + DNS:*.fritz.box, DNS:*.development.fritz.box, DNS:localhost, DNS:127.0.0.1, DNS:::1 + Signature Algorithm: sha256WithRSAEncryption + 30:60:42:55:1b:b3:28:84:9f:d9:66:07:8d:e2:ca:17:e6:e6: + 21:53:24:ff:b4:db:be:9b:9c:d7:3f:55:8b:0b:27:54:e8:b7: + b3:5b:04:59:96:2d:29:63:45:33:45:b6:8b:67:b2:5d:80:a4: + df:17:9f:fd:3b:2c:1a:1f:4a:b8:e8:b3:53:fa:c2:2e:26:16: + f3:19:5c:5e:f5:cd:40:97:d7:31:02:5f:a7:30:35:57:bd:f9: + 2b:0e:8a:4b:3e:b4:46:6e:99:eb:41:ab:3a:13:71:0b:18:73: + ad:dc:f1:43:e0:cb:98:64:05:e3:5b:24:93:17:bd:09:14:36: + dd:c2:1b:56:d9:7c:a4:27:75:9b:d1:bf:aa:e0:85:b1:97:90: + 14:d5:e1:62:14:e1:d7:d9:27:e7:d3:5a:53:d2:e6:61:62:8f: + 9b:d2:06:39:98:12:92:df:56:ee:3d:1a:42:1c:56:92:7d:53: + 58:e0:81:9e:8f:2a:e6:d7:cf:c2:a8:b0:e7:48:3c:61:69:e9: + 99:6c:af:63:eb:3e:2e:e7:b8:b1:a4:12:56:ca:61:29:df:ef: + 41:ad:7e:04:37:7c:af:23:d5:30:d1:1a:26:8d:76:62:00:b8: + ca:91:21:23:f4:4f:8f:99:17:b9:56:b7:21:47:d7:f9:86:3b: + ca:3d:8b:1d +-----BEGIN CERTIFICATE----- +MIIFjDCCBHSgAwIBAgIRAL7lu8Mp8PrUrB+HkU3XNMIwDQYJKoZIhvcNAQELBQAw +gbQxCzAJBgNVBAYTAkRFMQwwCgYDVQQIDANOUlcxEzARBgNVBAcMCkV1c2tpcmNo +ZW4xHDAaBgNVBAoME3RzLXJlYWN0LXBsYXlncm91bmQxHzAdBgNVBAsMFnRzLXJl +YWN0LXBsYXlncm91bmQgY2ExHDAaBgNVBAMME3RzLXJlYWN0LXBsYXlncm91bmQx +JTAjBgkqhkiG9w0BCQEWFmNhQHRzLXJlYWN0LXBsYXlncm91bmQwHhcNMjAwNjE5 +MTU0MDA2WhcNMzAwNjE3MTU0MDA2WjCBtjELMAkGA1UEBhMCREUxDDAKBgNVBAgM +A05SVzETMBEGA1UEBwwKRXVza2lyY2hlbjEcMBoGA1UECgwTdHMtcmVhY3QtcGxh +eWdyb3VuZDEfMB0GA1UECwwWdHMtcmVhY3QtcGxheWdyb3VuZCBjYTEeMBwGA1UE +AwwVZGV2ZWxvcG1lbnQuZnJpdHouYm94MSUwIwYJKoZIhvcNAQkBFhZjYUB0cy1y +ZWFjdC1wbGF5Z3JvdW5kMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA +8RKauuYCou/xIFL6vZ/3WvSrd7SwKH8AMuIN/UOIoNUo7aHopCEMwZyYuHzWIfnJ +b6TyyOmVqv767rkGo/orHS7M32EeriR9SXAwAb0hAf/Uq74ILUeRNkpDvjcHOEx5 +rhex5K8PtNtsYj5FILHU7lOwRw1o3MO5KWDUju4yOHlI6FMsTDvHKt3p9l+qSGo8 +7XEQotbH8SBKdMQEZwuyXfKUa2LnQcPp1WZtGcLQ736kIOhIwe6eVwcsGnWASubR +lE58trEogei0PIeiKgslD6OKZgrrX926MZlUdGfOIQjuNxe8KeO251cWFaeu2oTa +L68w+dVCAaM3D7IGQWII7wIDAQABo4IBkzCCAY8wCQYDVR0TBAIwADAdBgNVHQ4E +FgQUFZHYwUBm2/CmgbDVM5FIzB9BHu0wgfQGA1UdIwSB7DCB6YAU0jgoSFItD+e5 +sckUYwiVuevggQahgbqkgbcwgbQxCzAJBgNVBAYTAkRFMQwwCgYDVQQIDANOUlcx +EzARBgNVBAcMCkV1c2tpcmNoZW4xHDAaBgNVBAoME3RzLXJlYWN0LXBsYXlncm91 +bmQxHzAdBgNVBAsMFnRzLXJlYWN0LXBsYXlncm91bmQgY2ExHDAaBgNVBAMME3Rz +LXJlYWN0LXBsYXlncm91bmQxJTAjBgkqhkiG9w0BCQEWFmNhQHRzLXJlYWN0LXBs +YXlncm91bmSCFE+HuLulPb7MQy9tla7dTQRCe+bkMBMGA1UdJQQMMAoGCCsGAQUF +BwMBMAsGA1UdDwQEAwIFoDBKBgNVHREEQzBBggsqLmZyaXR6LmJveIIXKi5kZXZl +bG9wbWVudC5mcml0ei5ib3iCCWxvY2FsaG9zdIIJMTI3LjAuMC4xggM6OjEwDQYJ +KoZIhvcNAQELBQADggEBADBgQlUbsyiEn9lmB43iyhfm5iFTJP+0276bnNc/VYsL +J1Tot7NbBFmWLSljRTNFtotnsl2ApN8Xn/07LBofSrjos1P6wi4mFvMZXF71zUCX +1zECX6cwNVe9+SsOiks+tEZumetBqzoTcQsYc63c8UPgy5hkBeNbJJMXvQkUNt3C +G1bZfKQndZvRv6rghbGXkBTV4WIU4dfZJ+fTWlPS5mFij5vSBjmYEpLfVu49GkIc +VpJ9U1jggZ6PKubXz8KosOdIPGFp6Zlsr2PrPi7nuLGkElbKYSnf70GtfgQ3fK8j +1TDRGiaNdmIAuMqRISP0T4+ZF7lWtyFH1/mGO8o9ix0= +-----END CERTIFICATE----- diff --git a/ssl/development.fritz.box.key b/ssl/development.fritz.box.key new file mode 100644 index 0000000..0fba00b --- /dev/null +++ b/ssl/development.fritz.box.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDxEpq65gKi7/Eg +Uvq9n/da9Kt3tLAofwAy4g39Q4ig1SjtoeikIQzBnJi4fNYh+clvpPLI6ZWq/vru +uQaj+isdLszfYR6uJH1JcDABvSEB/9SrvggtR5E2SkO+Nwc4THmuF7Hkrw+022xi +PkUgsdTuU7BHDWjcw7kpYNSO7jI4eUjoUyxMO8cq3en2X6pIajztcRCi1sfxIEp0 +xARnC7Jd8pRrYudBw+nVZm0ZwtDvfqQg6EjB7p5XBywadYBK5tGUTny2sSiB6LQ8 +h6IqCyUPo4pmCutf3boxmVR0Z84hCO43F7wp47bnVxYVp67ahNovrzD51UIBozcP +sgZBYgjvAgMBAAECggEAIEVSSzShI7ik+aPCBwJT9WwNTA/3COS/XRBfuQiCUK1Y +Nj9XSilWcNCKrR+g9pleesCE85o5O9O4OZ6xIeBKRzTNnhV9KuidkOggtQrhUUgy +6u6cX5tV+AOG//6Ty9iI7WIkoS1CF/7Linc1f8Puchzn2wsTf4H/1mcs7Rk7xc1M +DeuuNuembLhqtkulabSG/VTF2MO+B5z5onhuTwE/phl1daEZL4vqex0LTQVqTAd0 +B1yDktSwfkfJBikp32SHZpBm2ZNp3SHveG3xXCVvOGcsz1Ph+X7Btjf9Fy6RmRN5 +lMFYHBXfrD9yj7nZIRcu0ON8p9Z7iAunyWrlMr6KyQKBgQD7xTxSbErCaPjk+BtS +dAX1LXt/+Nv22v4lnu17hRqyf7d7nGay9d2/0Feu+X6ceulpjQAhTTy3Fdoih3SF +FoSTpr+WPlrMzXM2yV3TTMDz23r3xESrnKCO+8983W+EJ7oR/KDNZd+hWoRVm9t4 +OvB3Y6YoGr6pRD37sq2JwIiV0wKBgQD1H1ylkPuwYszYcW6Eb7EXk7qHIq6aer9U +6WMS+xuc7613yc3QEnCYaJOlwir0XLh6I18JgbOlC4i+HX0dJ4hbixvySe7ItQTs +aZR/djsB9yFyUIQPG5rrZKk1mqgUDwub/tnjMpw88KzaHs0Xz4OUqg93t+yQ53Bi +OsTa4iUC9QKBgCM6W9BkmqlNKtZO6PPGjDbcIFWtqomF5t24uR35Z9zmBfRj0/Li +eB6otjwjaNXYVOSR+Byww/gSNK10KpecqPxH7rLFEstpS9+0mU5BhRYZ9cDJU5p3 +lferwEKGcV4aeOyfXpie0oWvNqkL38+Y36C07sDZzSe+BrY7MBEAQZxFAoGBAKJ+ +YNds7jx2sp8FSyNGO5qKlwuAZUkI+A9dDA2IIzz88fzH7cTyhGu0X7RxrDIDyVNG +YXkW3zUZGVQWjlsmWtF8vVD3y/CHd7UVJJj+ko1x+10hnPm67g7/0uAzHxr1Algu +MNjZMxN+5MdPxdvz96E0vz440f0ZP7oOhXMomSqFAoGBAJFf8BiyVTNPwmykGvMB +9wnU28Xh3oeq+iwuLk+Hp4eFU5d1Q95F50+06or+AcshkvDjOI2L5JNHIf2Jzzf1 +GbhAROE85/A2quj9y84qgnyOFJ7lMQpma214jNym2aVM3OuuudlUf3zarSqY7dbt +kRM3igDMJYaHJ872y4J5y3P7 +-----END PRIVATE KEY----- diff --git a/ssl/development.fritz.box.p12 b/ssl/development.fritz.box.p12 new file mode 100644 index 0000000..7695357 Binary files /dev/null and b/ssl/development.fritz.box.p12 differ diff --git a/ssl/dh.pem b/ssl/dh.pem new file mode 100644 index 0000000..21de52b --- /dev/null +++ b/ssl/dh.pem @@ -0,0 +1,8 @@ +-----BEGIN DH PARAMETERS----- +MIIBCAKCAQEA+r1P+d5gaa1SekFGX/W1wOuG14a46NmKeausCfb1ScQmsvXajwe2 +SMEUD+GtrDjgzXtOTmXCsqWRKAvfv1pZo5Ac2fRZbXyWRf71bpgUClaQkZiE+Q/o +LC3nyOEGQb4kVbtWJYJWSY4Blh/o4v9v1dPK2uojxcErkGtVHOGagl50wxcSBw98 +hIqHlxY4ImOvt8qI5HQl6pltEAhoKbevdO4f74FHLlaBPw5tbZm3LPCBoRzQ/nli +ed4PNsFSCXwchgf41ZoffkVeRP6Z71wtKB156dPRo+uXANo5ZWOktediMoTf27BX +dIFazmH5CiLBEU131GvqWmH0DKkvJ7zoowIBAg== +-----END DH PARAMETERS----- diff --git a/ssl/fritz.box.cer b/ssl/fritz.box.cer new file mode 100644 index 0000000..5e1afb7 Binary files /dev/null and b/ssl/fritz.box.cer differ diff --git a/ssl/fritz.box.crt b/ssl/fritz.box.crt new file mode 100644 index 0000000..9a9430a --- /dev/null +++ b/ssl/fritz.box.crt @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFLzCCBBegAwIBAgIUT4e4u6U9vsxDL22Vrt1NBEJ75uQwDQYJKoZIhvcNAQEL +BQAwgbQxCzAJBgNVBAYTAkRFMQwwCgYDVQQIDANOUlcxEzARBgNVBAcMCkV1c2tp +cmNoZW4xHDAaBgNVBAoME3RzLXJlYWN0LXBsYXlncm91bmQxHzAdBgNVBAsMFnRz +LXJlYWN0LXBsYXlncm91bmQgY2ExHDAaBgNVBAMME3RzLXJlYWN0LXBsYXlncm91 +bmQxJTAjBgkqhkiG9w0BCQEWFmNhQHRzLXJlYWN0LXBsYXlncm91bmQwHhcNMjAw +NjE5MTU0MDA0WhcNMzAwNjE3MTU0MDA0WjCBtDELMAkGA1UEBhMCREUxDDAKBgNV +BAgMA05SVzETMBEGA1UEBwwKRXVza2lyY2hlbjEcMBoGA1UECgwTdHMtcmVhY3Qt +cGxheWdyb3VuZDEfMB0GA1UECwwWdHMtcmVhY3QtcGxheWdyb3VuZCBjYTEcMBoG +A1UEAwwTdHMtcmVhY3QtcGxheWdyb3VuZDElMCMGCSqGSIb3DQEJARYWY2FAdHMt +cmVhY3QtcGxheWdyb3VuZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AJT4Rfd1kHg4wSaepOx80wFGHPlfHJxjmchL/Ptkz7Gv6h9MO7DvM8cq9xaVI6gF +ZlZobK0FgDNxcGxEYnqX8VJPzu8N80UwCB/UJTwYo5s9743k1xbL817WHFRlcSSY +/KKT56uHmOdRAcHh8Ro5VkRPeuxu+08HFth+R+89UJ8Em9M408c4vGk8bg0RjRPu +tLfHKTpbrXJ9zrj7YJ59wItfgTLqn1n3NQguFjXxE7kRIF/23YibBS9uaBsNQRFk +si9Vv6nziMKlPbZtwJK73Pm2e3wv8ElOg07mFGxPBcyV2GFPxgJ0z9B9NBNgd5NU +80bk9FWMY5nvQTbZu9nXPGkCAwEAAaOCATUwggExMB0GA1UdDgQWBBTSOChIUi0P +57mxyRRjCJW56+CBBjCB9AYDVR0jBIHsMIHpgBTSOChIUi0P57mxyRRjCJW56+CB +BqGBuqSBtzCBtDELMAkGA1UEBhMCREUxDDAKBgNVBAgMA05SVzETMBEGA1UEBwwK +RXVza2lyY2hlbjEcMBoGA1UECgwTdHMtcmVhY3QtcGxheWdyb3VuZDEfMB0GA1UE +CwwWdHMtcmVhY3QtcGxheWdyb3VuZCBjYTEcMBoGA1UEAwwTdHMtcmVhY3QtcGxh +eWdyb3VuZDElMCMGCSqGSIb3DQEJARYWY2FAdHMtcmVhY3QtcGxheWdyb3VuZIIU +T4e4u6U9vsxDL22Vrt1NBEJ75uQwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYw +DQYJKoZIhvcNAQELBQADggEBAFba4dV8osjrXuq2lpswMF9Sw21RF3EZMEF+3x+9 +mRtiUxpzmaH0WNBJmnpjPRzHN1jPEmYWJEu953pPzuXuToPyoZvKAPHyjC2RTucn +BrW47hsRJEeTzNy1BjnR/dWvgGN4Q2TKoFOZ5E/PeYzoaZnrbwOvYX4clAzXEUn/ +/F16qKBTSMVjHBFj81BVv4I82GjC511c1XPk0xsP8KQ6xsMUb3LwyfXfI6KBBaZR +1sJ+HBwOLbk84Cd0+R0LQb6FReozVntVp3HdtAMMvBa3ZyJNCvkjhNJtL41bpEkn +xagDkEtC/UyGkLy4+HNOjp/XY9r4A8MhM3GzVbrlxFMgMp0= +-----END CERTIFICATE----- diff --git a/ssl/fritz.box.key b/ssl/fritz.box.key new file mode 100644 index 0000000..c8fdc73 --- /dev/null +++ b/ssl/fritz.box.key @@ -0,0 +1,30 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,44DD7A72047359E208DBC61556A18386 + +cGJC3HFhgILAO8On4QqS4MQTpVsoVVRXAKyCyipxG8bFtQn8H/HJtlWgwrxebI+4 +hZ7q01/9yDzixAaLk7xEve+IUvZz2Ummwa1+kUJDJvXexW8XDim5+8XE+FiAcYf1 +yIu2hJwod4dN43TaXKmhS/sWAHjzO687ECP2f1B+gAq+Y7LGO/qmDSr0wKusyGNG +KvCN3AS7XHo2z9CfZpijVq+9nQ67g3n+czRoQrkS4IYsHNAeQ29jXeD7KfmA6BkG +BcdEePrqK3xzMccY3R2sQwYmWfA3q+MgmMa7xRnG5gGmDvcSu/CRQBlI5YNyxC3w +P6W7dgEsWi1XmxnfIHKbIYiQzsFvYDvb8DhNAp0R9Zx5Kw9tqMNuqottEiDcMImT +0Ziy68BPdIOPRAisTVobZPLaHks1yaziaBz3tLYI8dTF2buKWWFHlEACT4nO0GPj +hnt+GFYyYCMV2755o47sYTdyqQkgyklLUDF4lKD4QJuuCecI/9Wd6yZyaVg1rktH +srJfy2LcTwcEtG3leflu9GT5oqnLttqQOs0YGRG8dVeOihPaiBkGfcbKaKy8g9h4 +qJSJXjiVkzkt0dftb6TfUQVGxGXJLEV/XCGWulmjOkKkZX5rKUKuZYT2c3F88wGa +1lrJAHbK247gqrjxqrltbudAsSL8wu34jpgxvSZS9Hxx2N4ZmjQ7ps3/io9KioJb +DDt9hcoKTsMoaQ0L0ZCooXnKMYP86lGqfOSSHeZBDlQ2sFprKClgqHNxNxBOLLnA +yZs6ZYCtkS5VcbqSx+PPWBPx/COvvXKxxu6Nx4lzZlzzj9oY/31c57Y5iZ6+zMkn +ybUm54ztGcEdqq4ASsJtO7crMjevsVRPXX9HNsIj+kPgMjbVfIHlvSIWQmcbvwWp +GVKW/blB6IV5TFsOsJcX2+XsIRUXdgoTptCU+Ymor8JMO6MwMaPOyIdILuoCZaRF +A1towjUqSL8gVcMOIXGD2SUWCsVdmjZw+hm7x/bZRUI46cGgce+TCOGZPN59ncFi +avl86x1k+tDi2dvikvkMZARonmw8avshoMQFrFJ5rvktfsXFRS88JGjpGqRYulnX +1qn6zTUby2kiiSY9rN2ZogPhE2CSs1yZO0ZQHss6xV6Bi5FpHOGity9gSUGpe59r +qWKTlfuMoDQZOOUzOm3hdQR0DuPgKLZkwtaa3YPbWbeLTyZvuTo4zkcfbpTnwxS4 +b3zA6CO4C07g4EmMwgc7C/gTTUFRlDmZy46ryF30F+W5rQPPt+gBVtHZasFu1R87 +gz9FYlZf4CrxYI2upWlcebtxvUEhCvLCFEn6+5tg10XX0JeYTqPvw838UpJm+lpX +S0tum1HriEblBlRK6rXMuCoTjyDS4BgsIZ2znHTp85UMcobHaqb3Mp4/c2B6pdJY +sch00qK+ZVtHoAUte7x9drA6njim9a3G6r0TBvByBb7pzicv5i0ts8uNYWkc3Mbh +ZFVuJmv7dExM+ZlXBfcQbDUSh8xn9o2wSiUbHKtdnss1+f0Miyfp89DnKMrfwVpZ +/TSRoyYA2dzj+JloB0i5JJd33ZA985lWIdMlWqOHHJZznf4SJytvqx/Lv8nPYQam +-----END RSA PRIVATE KEY----- diff --git a/ssl/fritz.box.pem b/ssl/fritz.box.pem new file mode 100644 index 0000000..7ee67b5 --- /dev/null +++ b/ssl/fritz.box.pem @@ -0,0 +1,18 @@ +-----BEGIN X509 CRL----- +MIIC/DCCAeQCAQEwDQYJKoZIhvcNAQELBQAwgbQxCzAJBgNVBAYTAkRFMQwwCgYD +VQQIDANOUlcxEzARBgNVBAcMCkV1c2tpcmNoZW4xHDAaBgNVBAoME3RzLXJlYWN0 +LXBsYXlncm91bmQxHzAdBgNVBAsMFnRzLXJlYWN0LXBsYXlncm91bmQgY2ExHDAa +BgNVBAMME3RzLXJlYWN0LXBsYXlncm91bmQxJTAjBgkqhkiG9w0BCQEWFmNhQHRz +LXJlYWN0LXBsYXlncm91bmQXDTIwMDYxOTE1NDAwNVoXDTIwMTIxNjE1NDAwNVqg +gfowgfcwgfQGA1UdIwSB7DCB6YAU0jgoSFItD+e5sckUYwiVuevggQahgbqkgbcw +gbQxCzAJBgNVBAYTAkRFMQwwCgYDVQQIDANOUlcxEzARBgNVBAcMCkV1c2tpcmNo +ZW4xHDAaBgNVBAoME3RzLXJlYWN0LXBsYXlncm91bmQxHzAdBgNVBAsMFnRzLXJl +YWN0LXBsYXlncm91bmQgY2ExHDAaBgNVBAMME3RzLXJlYWN0LXBsYXlncm91bmQx +JTAjBgkqhkiG9w0BCQEWFmNhQHRzLXJlYWN0LXBsYXlncm91bmSCFE+HuLulPb7M +Qy9tla7dTQRCe+bkMA0GCSqGSIb3DQEBCwUAA4IBAQBgY2fL3RCEuhvoRYpkbUA1 +zm5TYBs1jxGQw+D/+VM0W7cS5mui9DwobJcrW/8oMDTmMauSFp2OBAjcqvC0X0Yt +COq3yQeXBXtUkUwQf5iCBsmJcPxH7WlSIQu/UHwfqVOr6m5t5nwEbgyDX4CQZcCh +HApPmVgTiQYGQxz9qokjtz9f7St1VxH6t689uZa7kBwzGP4kwPKp8cGNSB6UUNGM +oPMmW4DUphyBI0iH33MUOIUsTv+9MpYRoMTtMrXYOPjDTHX0GbbA8+v4jC57VfqS +0vgCvvgCds5ZXSnXfskX8fBRPYJ0/6GsUaV5Ui7NpgSda3HGrhaEMxV9yaR7pQed +-----END X509 CRL----- diff --git a/webpack.config.js b/webpack.config.js index 32b5051..91bb9cf 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -144,12 +144,12 @@ module.exports = { }, devServer: { historyApiFallback: true, - host: '0.0.0.0', + host: process.env.NODE_HOST || 'localhost', port: process.env.NODE_PORT || pkgJson.baseport, - // https: { - // key: fs.readFileSync(path.resolve(__dirname, 'certs', 'key.pem')), - // cert: fs.readFileSync(path.resolve(__dirname, 'certs', 'cert.pem')), - // }, + https: { + key: fs.readFileSync(path.resolve(__dirname, 'ssl', 'development.fritz.box.key')), + cert: fs.readFileSync(path.resolve(__dirname, 'ssl', 'development.fritz.box.crt')), + }, }, plugins: plugins, };