From e7f172583088a38024beae06e6589b119bfd206a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=82=85=E5=93=A5?= <184172133@qq.com> Date: Sat, 17 Aug 2024 18:30:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20ssl=20nginx=20=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/{ => freessl}/dev-ops/docker-compose.yml | 0 .../dev-ops/nginx/conf/conf.d/default.conf | 0 .../conf/conf.d/ssl01.xiaofuge.tech.conf | 0 .../conf/conf.d/ssl02.xiaofuge.tech.conf | 0 .../dev-ops/nginx/conf/nginx.conf | 0 .../dev-ops/nginx/html/index.html | 0 .../dev-ops/nginx/logs/access.log | 0 .../dev-ops/nginx/logs/error.log | 0 docs/httpsok/docker-compose.yml | 17 ++++ docs/httpsok/nginx/conf/conf.d/default.conf | 20 ++++ .../conf/conf.d/ssl01.xiaofuge.tech.conf | 35 +++++++ .../conf/conf.d/ssl02.xiaofuge.tech.conf | 35 +++++++ docs/httpsok/nginx/conf/nginx.conf | 32 +++++++ docs/httpsok/nginx/html/index.html | 10 ++ docs/httpsok/nginx/logs/access.log | 0 docs/httpsok/nginx/logs/error.log | 0 docs/httpsok/nginx/ssl/_.xiaofuge.tech.key | 27 ++++++ docs/httpsok/nginx/ssl/_.xiaofuge.tech.pem | 91 +++++++++++++++++++ 18 files changed, 267 insertions(+) rename docs/{ => freessl}/dev-ops/docker-compose.yml (100%) rename docs/{ => freessl}/dev-ops/nginx/conf/conf.d/default.conf (100%) rename docs/{ => freessl}/dev-ops/nginx/conf/conf.d/ssl01.xiaofuge.tech.conf (100%) rename docs/{ => freessl}/dev-ops/nginx/conf/conf.d/ssl02.xiaofuge.tech.conf (100%) rename docs/{ => freessl}/dev-ops/nginx/conf/nginx.conf (100%) rename docs/{ => freessl}/dev-ops/nginx/html/index.html (100%) rename docs/{ => freessl}/dev-ops/nginx/logs/access.log (100%) rename docs/{ => freessl}/dev-ops/nginx/logs/error.log (100%) create mode 100644 docs/httpsok/docker-compose.yml create mode 100644 docs/httpsok/nginx/conf/conf.d/default.conf create mode 100644 docs/httpsok/nginx/conf/conf.d/ssl01.xiaofuge.tech.conf create mode 100644 docs/httpsok/nginx/conf/conf.d/ssl02.xiaofuge.tech.conf create mode 100644 docs/httpsok/nginx/conf/nginx.conf create mode 100644 docs/httpsok/nginx/html/index.html create mode 100644 docs/httpsok/nginx/logs/access.log create mode 100644 docs/httpsok/nginx/logs/error.log create mode 100644 docs/httpsok/nginx/ssl/_.xiaofuge.tech.key create mode 100644 docs/httpsok/nginx/ssl/_.xiaofuge.tech.pem diff --git a/docs/dev-ops/docker-compose.yml b/docs/freessl/dev-ops/docker-compose.yml similarity index 100% rename from docs/dev-ops/docker-compose.yml rename to docs/freessl/dev-ops/docker-compose.yml diff --git a/docs/dev-ops/nginx/conf/conf.d/default.conf b/docs/freessl/dev-ops/nginx/conf/conf.d/default.conf similarity index 100% rename from docs/dev-ops/nginx/conf/conf.d/default.conf rename to docs/freessl/dev-ops/nginx/conf/conf.d/default.conf diff --git a/docs/dev-ops/nginx/conf/conf.d/ssl01.xiaofuge.tech.conf b/docs/freessl/dev-ops/nginx/conf/conf.d/ssl01.xiaofuge.tech.conf similarity index 100% rename from docs/dev-ops/nginx/conf/conf.d/ssl01.xiaofuge.tech.conf rename to docs/freessl/dev-ops/nginx/conf/conf.d/ssl01.xiaofuge.tech.conf diff --git a/docs/dev-ops/nginx/conf/conf.d/ssl02.xiaofuge.tech.conf b/docs/freessl/dev-ops/nginx/conf/conf.d/ssl02.xiaofuge.tech.conf similarity index 100% rename from docs/dev-ops/nginx/conf/conf.d/ssl02.xiaofuge.tech.conf rename to docs/freessl/dev-ops/nginx/conf/conf.d/ssl02.xiaofuge.tech.conf diff --git a/docs/dev-ops/nginx/conf/nginx.conf b/docs/freessl/dev-ops/nginx/conf/nginx.conf similarity index 100% rename from docs/dev-ops/nginx/conf/nginx.conf rename to docs/freessl/dev-ops/nginx/conf/nginx.conf diff --git a/docs/dev-ops/nginx/html/index.html b/docs/freessl/dev-ops/nginx/html/index.html similarity index 100% rename from docs/dev-ops/nginx/html/index.html rename to docs/freessl/dev-ops/nginx/html/index.html diff --git a/docs/dev-ops/nginx/logs/access.log b/docs/freessl/dev-ops/nginx/logs/access.log similarity index 100% rename from docs/dev-ops/nginx/logs/access.log rename to docs/freessl/dev-ops/nginx/logs/access.log diff --git a/docs/dev-ops/nginx/logs/error.log b/docs/freessl/dev-ops/nginx/logs/error.log similarity index 100% rename from docs/dev-ops/nginx/logs/error.log rename to docs/freessl/dev-ops/nginx/logs/error.log diff --git a/docs/httpsok/docker-compose.yml b/docs/httpsok/docker-compose.yml new file mode 100644 index 0000000..fd157fa --- /dev/null +++ b/docs/httpsok/docker-compose.yml @@ -0,0 +1,17 @@ +version: '3' +# docker-compose -f docker-compose.yml up -d +services: + nginx: + image: nginx:1.25.3 + container_name: nginx + ports: + - '443:443' + - '80:80' + volumes: + - ./nginx/logs:/var/log/nginx + - ./nginx/html:/usr/share/nginx/html + - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf + - ./nginx/conf/conf.d:/etc/nginx/conf.d + - ./nginx/ssl:/etc/nginx/ssl/ + privileged: true + restart: always \ No newline at end of file diff --git a/docs/httpsok/nginx/conf/conf.d/default.conf b/docs/httpsok/nginx/conf/conf.d/default.conf new file mode 100644 index 0000000..f49b7ee --- /dev/null +++ b/docs/httpsok/nginx/conf/conf.d/default.conf @@ -0,0 +1,20 @@ +server { + listen 80; + listen [::]:80; + + location / { + root /usr/share/nginx/html; + index index.html; + } + + location /api { + root /usr/share/nginx/html; + index index.html; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + +} \ No newline at end of file diff --git a/docs/httpsok/nginx/conf/conf.d/ssl01.xiaofuge.tech.conf b/docs/httpsok/nginx/conf/conf.d/ssl01.xiaofuge.tech.conf new file mode 100644 index 0000000..37f9185 --- /dev/null +++ b/docs/httpsok/nginx/conf/conf.d/ssl01.xiaofuge.tech.conf @@ -0,0 +1,35 @@ +server { + listen 80; + listen [::]:80; + server_name ssl01.xiaofuge.tech; + + rewrite ^(.*) https://$server_name$1 permanent; + +} + +server { + listen 443 ssl; + server_name ssl01.xiaofuge.tech; + + ssl_certificate /etc/nginx/ssl/_.xiaofuge.tech.pem; + ssl_certificate_key /etc/nginx/ssl/_.xiaofuge.tech.key; + + ssl_session_cache shared:SSL:1m; + ssl_session_timeout 5m; + + ssl_ciphers HIGH:!aNULL:!MD5; + ssl_prefer_server_ciphers on; + + location / { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + root /usr/share/nginx/html; + index index.html index.htm; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +} \ No newline at end of file diff --git a/docs/httpsok/nginx/conf/conf.d/ssl02.xiaofuge.tech.conf b/docs/httpsok/nginx/conf/conf.d/ssl02.xiaofuge.tech.conf new file mode 100644 index 0000000..f40d8e5 --- /dev/null +++ b/docs/httpsok/nginx/conf/conf.d/ssl02.xiaofuge.tech.conf @@ -0,0 +1,35 @@ +server { + listen 80; + listen [::]:80; + server_name ssl02.xiaofuge.tech; + + rewrite ^(.*) https://$server_name$1 permanent; + +} + +server { + listen 443 ssl; + server_name ssl02.xiaofuge.tech; + + ssl_certificate /etc/nginx/ssl/_.xiaofuge.tech.pem; + ssl_certificate_key /etc/nginx/ssl/_.xiaofuge.tech.key; + + ssl_session_cache shared:SSL:1m; + ssl_session_timeout 5m; + + ssl_ciphers HIGH:!aNULL:!MD5; + ssl_prefer_server_ciphers on; + + location / { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + root /usr/share/nginx/html; + index index.html index.htm; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +} \ No newline at end of file diff --git a/docs/httpsok/nginx/conf/nginx.conf b/docs/httpsok/nginx/conf/nginx.conf new file mode 100644 index 0000000..358f019 --- /dev/null +++ b/docs/httpsok/nginx/conf/nginx.conf @@ -0,0 +1,32 @@ + +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log notice; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + keepalive_timeout 65; + + #gzip on; + + include /etc/nginx/conf.d/*.conf; +} \ No newline at end of file diff --git a/docs/httpsok/nginx/html/index.html b/docs/httpsok/nginx/html/index.html new file mode 100644 index 0000000..ad22a5a --- /dev/null +++ b/docs/httpsok/nginx/html/index.html @@ -0,0 +1,10 @@ + + + + + Nginx - 小傅哥 + + +Hi Body Congratulations on your successful deployment! + + \ No newline at end of file diff --git a/docs/httpsok/nginx/logs/access.log b/docs/httpsok/nginx/logs/access.log new file mode 100644 index 0000000..e69de29 diff --git a/docs/httpsok/nginx/logs/error.log b/docs/httpsok/nginx/logs/error.log new file mode 100644 index 0000000..e69de29 diff --git a/docs/httpsok/nginx/ssl/_.xiaofuge.tech.key b/docs/httpsok/nginx/ssl/_.xiaofuge.tech.key new file mode 100644 index 0000000..0bd3a34 --- /dev/null +++ b/docs/httpsok/nginx/ssl/_.xiaofuge.tech.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAriY2Z98ZhbbYSQVYca+NGYhhe0q+7uAuhEfUMIzZig8LITB0 +0+sscR6WH/cTfTyo7TCb5aO5dppqxoaE3+ABoXCC+ggWkFIj/MtObgc+7dcjH/E3 +U6caeBWR48PQc7sYwI2BKNdJm2T8AEmrjd9q2Kfg0BovdJtxeQE1g9p76pru4gqp +EGMPvVDZSaL5LWU1p6Y2fvfOpHKEK0kQhTHoRqCl/01P7AzFkAv38aZ35ZfDZG78 +dFJ93NPBuXFg4VzMB9Bm/pNQKfCR3ebm+KcKMT9ylsZvlpAsZRyB8GF1qX2g8Zl6 +iqx7pmpGg2xc+96Mbn0GCHj5vLRo7DddfXrtWQIDAQABAoIBADt+r4iV9fyyBjsQ +GfKg5GYMKy15UDiAmzOy7GF3xRv+3rEEgm0hw2mT5vrdqKlY72c0+5Wc9Q/5WjAf +pcZsG3KBYyWzXK4KeePzuwQo8o1DuerAOEQaaxcKW3CCJbVb/m1OCome3zU470TT +5kmOQczpsYq2326Jal9KE/PLURlJKtvauQClsyz0s5x4P80XXjd6K64hP6nkktI0 +UAYIkDjrYvBMxbkEcENhdpJjH/heimJb2wCf1oN9Vc4CjjD8VJirg9cu9aISO418 +OQ9FC/VVGiR/ObaY1SnqMxp57+cppwk3oEJ04N5UYdhWCW1aJb4abTvIPXze5REB +5t+LCMcCgYEA68uw8aTUqyCL6kJ8wlxikKVVB3xqByxI5u0mGmOfy7ThZNEPThiF +nQBBC0TSzc2zZ1OXjCTGe54q+YPJLzQd8gMxtxWS1xEVkJUzfnQLA0vurUn6K9VN +qejP1W4Qs+3BMUX7arBzY8DxCRh+ytlFOy4c+YBxU8ESyB/NwlTBYTsCgYEAvRJF ++MLFnX6RZP1l0WevSxyNtotbHLDJULHxkHNxQk0uqalpbV7asn86YJaaS9rdATUL +WycIWHEBL5RvOOEwioeDpVHwZK/qmXeVHojrOifMIyvjCG6XinauaTCUXHwYHHeX +WEHBdNcmVJprkds11dv9MuJUY8veEY+f2CSAQnsCgYEA6IhJiSQaLmC8WlsTGcFt +2mORhP5muYgspL8+Ekwo7AUHOhsJUuTP71Ku0mQe16KBx+Yhz6z8qDAFBWe3YXuu +BFquDnWSB9HrSFg7HftmWOvrBq2rrsp9+o+DVmFiy24uVV9EX6R/RuKhUWz8rSKz +KXeCT3MhT41Z7k2e5oQa6L0CgYA6wIvnwjaAO01Y8XkLOkn5cDUFLYaxgqn8Hl9v +QMBIFw3SAOfW6avR3cE5NHNb8PXOIzqVJ6rrOKpiq6BoL2nTEksxOyYVU6j16Xf4 +FhnqZ2WC5GdXPm5uw3RtEYB4wMMJTYxFC6He+eBaV+XnXBP9ka+7eSM6I6atFFFa +a/VDMwKBgQCIBb6ZQv8Vzq8LHPlUkp3shwD/+ojj4kznnkSZ0ZlJf5m4VMglylw4 +8DXs4cgddjIjPSPP6vC6frQ3wdukyzDShU1wESJX2kc3v1s/y9AOIUvsZaIO3qUF +KdQtcJwla3VN3RbxHGcAQ6XxZk+mWfiBgTznL/cV17t2+YXk1Xo6wg== +-----END RSA PRIVATE KEY----- diff --git a/docs/httpsok/nginx/ssl/_.xiaofuge.tech.pem b/docs/httpsok/nginx/ssl/_.xiaofuge.tech.pem new file mode 100644 index 0000000..9b0faca --- /dev/null +++ b/docs/httpsok/nginx/ssl/_.xiaofuge.tech.pem @@ -0,0 +1,91 @@ +-----BEGIN CERTIFICATE----- +MIIFQzCCBCugAwIBAgIRAP4ol8APdcMhDsP0mbN47fkwDQYJKoZIhvcNAQELBQAw +OzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczEM +MAoGA1UEAxMDV1IxMB4XDTI0MDgxNzA4NDA0MFoXDTI0MTExNTA4NDAzOVowGjEY +MBYGA1UEAwwPKi54aWFvZnVnZS50ZWNoMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAriY2Z98ZhbbYSQVYca+NGYhhe0q+7uAuhEfUMIzZig8LITB00+ss +cR6WH/cTfTyo7TCb5aO5dppqxoaE3+ABoXCC+ggWkFIj/MtObgc+7dcjH/E3U6ca +eBWR48PQc7sYwI2BKNdJm2T8AEmrjd9q2Kfg0BovdJtxeQE1g9p76pru4gqpEGMP +vVDZSaL5LWU1p6Y2fvfOpHKEK0kQhTHoRqCl/01P7AzFkAv38aZ35ZfDZG78dFJ9 +3NPBuXFg4VzMB9Bm/pNQKfCR3ebm+KcKMT9ylsZvlpAsZRyB8GF1qX2g8Zl6iqx7 +pmpGg2xc+96Mbn0GCHj5vLRo7DddfXrtWQIDAQABo4ICYTCCAl0wDgYDVR0PAQH/ +BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8E +AjAAMB0GA1UdDgQWBBR/Zb6tpx0XGekaRFSvuz7xWBtX7TAfBgNVHSMEGDAWgBRm +aUnU3iqckQPPiQ4kuA4wA26ILjBeBggrBgEFBQcBAQRSMFAwJwYIKwYBBQUHMAGG +G2h0dHA6Ly9vLnBraS5nb29nL3Mvd3IxL19pZzAlBggrBgEFBQcwAoYZaHR0cDov +L2kucGtpLmdvb2cvd3IxLmNydDApBgNVHREEIjAggg8qLnhpYW9mdWdlLnRlY2iC +DXhpYW9mdWdlLnRlY2gwEwYDVR0gBAwwCjAIBgZngQwBAgEwNgYDVR0fBC8wLTAr +oCmgJ4YlaHR0cDovL2MucGtpLmdvb2cvd3IxL0dDc1pHdTJIWXI0LmNybDCCAQQG +CisGAQQB1nkCBAIEgfUEgfIA8AB3AO7N0GTV2xrOxVy3nbTNE6Iyh0Z8vOzew1FI +WUZxH7WbAAABkV+15SkAAAQDAEgwRgIhALZ7lH2i3Ao2H5KQdu8dT1gJP2+jJOsH +kAbg1H52H+k/AiEAwtAg6eV7euPVYQyNzBOVpf2Q+yqSQO4UZN6G5XUu0R8AdQDa +tr9rP7W2Ip+bwrtca+hwkXFsu1GEhTS9pD0wSNf7qwAAAZFfteVdAAAEAwBGMEQC +IE91aJVL40NEXAmEVuvmH8hezkxZVHVbORWuM9kKY/S2AiAd8LESElmY8vmbukLu +DEv0nao9hCbXz/3C2B+bS6xViDANBgkqhkiG9w0BAQsFAAOCAQEAiU/29+NaD+0M +bUc8PnBb9AqoHlCenepdQBh34yNBOuhObEglm9hSxitzP7gXHqqagVmIxFI1yFoa +vnTBBY7r5Hj407T+jaCqnbSv6RMoA+9sdpqtlCWElJSEQIpSOFhq5P6B+xFnI64h +pxhnaJK4IbnzjTF90lmvtsZEmw8xgWYMe9dPWJenyeSYT4L5BisQjXUX1qER0LsK +5NdSz09294BhuwARvIF45ELo3rprsFQ+uwqWshNc/t9KP+eU8pikNjb7KsbrgO3T +Pp3Jk2mtL6G76FX/Db9vAIQDuSRquQEW9OtMJRnK36a+Qmh6yqtZG2/7ylttdc9R +pmP0RP0xBQ== +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFCzCCAvOgAwIBAgIQf9niwtIEigR0tieibQhopzANBgkqhkiG9w0BAQsFADBH +MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM +QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMjMxMjEzMDkwMDAwWhcNMjkwMjIw +MTQwMDAwWjA7MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNl +cnZpY2VzMQwwCgYDVQQDEwNXUjEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQDPbjYWircr7kaYAx1TcA937qNLoHK+jyMtwkfGj1yN+T3mGo7uMyINyRFI +uLBizvRpDXICfd7VJg/DbpvPfg7XIM/GkDujggbaOp3/bFa/3OlhlEXkabxPD8kT +wK1hRHIggdAPK55oamJqj4oiV3lpK+IkM352YyxdvFFpfiMHsf92gfHuuFi1azUV +76HmSCg5lzHZBx+Vp56uz5i8no2KA+Gwl01Qb5NMSh/4233xkJkVf+OW7e4xgepy +PVId3yVkpQtwqp7oqLlHyKdaECVgb0Lh1z/njwzwwoNGMyDmS3cEdqFop10VGO/Y +KHc1rQ6tRuRibuKq+MzvN34PJrMHAgMBAAGjgf4wgfswDgYDVR0PAQH/BAQDAgGG +MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/ +AgEAMB0GA1UdDgQWBBRmaUnU3iqckQPPiQ4kuA4wA26ILjAfBgNVHSMEGDAWgBTk +rysmcRorSCeFL1JmLO/wiRNxPjA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAKG +GGh0dHA6Ly9pLnBraS5nb29nL3IxLmNydDArBgNVHR8EJDAiMCCgHqAchhpodHRw +Oi8vYy5wa2kuZ29vZy9yL3IxLmNybDATBgNVHSAEDDAKMAgGBmeBDAECATANBgkq +hkiG9w0BAQsFAAOCAgEATuazCBEgkWAn+VGQTQIY7rjBidUihJfm1t/mTjo7KQR+ +3iDx4o2L06oeF0Q3wpKYpQgI/TeMqUlYMWQmZbWPE0PX8pfsVAE5E5tVOjh34bNA +JwDPVnsZVJwzN3nw5BGQ7sxRspFzIcM/qbbTpNeXf9II4Wsk2+Tv6FSVFZUL3/0u +HradbruDWjRQ4IZ7mYqKiEqk08dpOZ+TmBzwykEGy1/IXberb6Ap1SSnn2+RI7t6 +N/fqPCrwwFjp8kg1G6etRATGBaPYCx+GjJMFPX+k97Alvoj3/98SvqdegLPYEPjv +xUclHpiKLD63NMmVarVQddIL6kOvTe5k0pnxRnR+mndGHIQc77TLbcZFeja56Pyn +lSqmer578c7CBrPqo1BVmPyWUK+v6sGuzs7Mq7QQaxVs4710cI/MpPp1ovxMVt17 +ENKxLk34LpEKAKVmqwnzbHHRjhXNeCC984XDOwLEp0K4MzHl8ZOWJQAakCdVlFC+ +PyA3GP2JX/QLoqWNHGuN9c9vLObDhHVs/L+65De+OdnnjpFGI9xxtsNyRsyaHdFA +f5z7ulOoXDXkHCCej/Ehs5docReNt16W2xbH/EBuirJrOzFE2rtALxksl1TdEjOf +IKXOJfUqQeVI5+hA7V+n1+A/n7Npg0S+5ODytWh5XW54ccN1drJnMK54ttozh0c= +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIFYjCCBEqgAwIBAgIQd70NbNs2+RrqIQ/E8FjTDTANBgkqhkiG9w0BAQsFADBX +MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UE +CxMHUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTIwMDYx +OTAwMDA0MloXDTI4MDEyODAwMDA0MlowRzELMAkGA1UEBhMCVVMxIjAgBgNVBAoT +GUdvb2dsZSBUcnVzdCBTZXJ2aWNlcyBMTEMxFDASBgNVBAMTC0dUUyBSb290IFIx +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAthECix7joXebO9y/lD63 +ladAPKH9gvl9MgaCcfb2jH/76Nu8ai6Xl6OMS/kr9rH5zoQdsfnFl97vufKj6bwS +iV6nqlKr+CMny6SxnGPb15l+8Ape62im9MZaRw1NEDPjTrETo8gYbEvs/AmQ351k +KSUjB6G00j0uYODP0gmHu81I8E3CwnqIiru6z1kZ1q+PsAewnjHxgsHA3y6mbWwZ +DrXYfiYaRQM9sHmklCitD38m5agI/pboPGiUU+6DOogrFZYJsuB6jC511pzrp1Zk +j5ZPaK49l8KEj8C8QMALXL32h7M1bKwYUH+E4EzNktMg6TO8UpmvMrUpsyUqtEj5 +cuHKZPfmghCN6J3Cioj6OGaK/GP5Afl4/Xtcd/p2h/rs37EOeZVXtL0m79YB0esW +CruOC7XFxYpVq9Os6pFLKcwZpDIlTirxZUTQAs6qzkm06p98g7BAe+dDq6dso499 +iYH6TKX/1Y7DzkvgtdizjkXPdsDtQCv9Uw+wp9U7DbGKogPeMa3Md+pvez7W35Ei +Eua++tgy/BBjFFFy3l3WFpO9KWgz7zpm7AeKJt8T11dleCfeXkkUAKIAf5qoIbap +sZWwpbkNFhHax2xIPEDgfg1azVY80ZcFuctL7TlLnMQ/0lUTbiSw1nH69MG6zO0b +9f6BQdgAmD06yK56mDcYBZUCAwEAAaOCATgwggE0MA4GA1UdDwEB/wQEAwIBhjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTkrysmcRorSCeFL1JmLO/wiRNxPjAf +BgNVHSMEGDAWgBRge2YaRQ2XyolQL30EzTSo//z9SzBgBggrBgEFBQcBAQRUMFIw +JQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnBraS5nb29nL2dzcjEwKQYIKwYBBQUH +MAKGHWh0dHA6Ly9wa2kuZ29vZy9nc3IxL2dzcjEuY3J0MDIGA1UdHwQrMCkwJ6Al +oCOGIWh0dHA6Ly9jcmwucGtpLmdvb2cvZ3NyMS9nc3IxLmNybDA7BgNVHSAENDAy +MAgGBmeBDAECATAIBgZngQwBAgIwDQYLKwYBBAHWeQIFAwIwDQYLKwYBBAHWeQIF +AwMwDQYJKoZIhvcNAQELBQADggEBADSkHrEoo9C0dhemMXoh6dFSPsjbdBZBiLg9 +NR3t5P+T4Vxfq7vqfM/b5A3Ri1fyJm9bvhdGaJQ3b2t6yMAYN/olUazsaL+yyEn9 +WprKASOshIArAoyZl+tJaox118fessmXn1hIVw41oeQa1v1vg4Fv74zPl6/AhSrw +9U5pCZEt4Wi4wStz6dTZ/CLANx8LZh1J7QJVj2fhMtfTJr9w4z30Z209fOU0iOMy ++qduBmpvvYuR7hZL6Dupszfnw0Skfths18dG9ZKb59UhvmaSGZRVbNQpsg3BZlvi +d0lIKO2d1xozclOzgjXPYovJJIultzkMu34qQb9Sz/yilrbCgj8= +-----END CERTIFICATE----- -- GitLab