diff --git a/docker/nginx/nginx/cert/server.crt b/docker/nginx/nginx/cert/server.crt new file mode 100644 index 00000000..7dfe89eb --- /dev/null +++ b/docker/nginx/nginx/cert/server.crt @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEQjCCAqqgAwIBAgIRAMY7fF5Y4UwBxlADzNMomtswDQYJKoZIhvcNAQELBQAw +gYUxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTEtMCsGA1UECwwkREVT +S1RPUC1QUElTVU1WXEZLMDVAREVTS1RPUC1QUElTVU1WMTQwMgYDVQQDDCtta2Nl +cnQgREVTS1RPUC1QUElTVU1WXEZLMDVAREVTS1RPUC1QUElTVU1WMB4XDTI2MDEw +NzA4MzM0MFoXDTI4MDQwNzA4MzM0MFowWDEnMCUGA1UEChMebWtjZXJ0IGRldmVs +b3BtZW50IGNlcnRpZmljYXRlMS0wKwYDVQQLDCRERVNLVE9QLVBQSVNVTVZcRksw +NUBERVNLVE9QLVBQSVNVTVYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQDSqRj6idrpU7rm4fiJg8s1KTAl5ZxIu/p76XwDRayPV8XAis0cSgzv/4DoPw2h +e4oHTZXeyvIvE+NJFShzbzGkgMNB8QepoZ28ob+uY9YueC6hizHy41zIkiu5flXx +lCEgb3lsZGpZFzqp6Ase8AimOdWy2A6FNE7EBide08J6WxvdblfPfTDgutygT+dy +aT+pWqsutWUO8qmgHmb4zwaMksobxMyfi4W2ZPn2VmXml2xw2SW4ZiMCIABMQiZQ +wZjWfZLo0dMd59POpS3SM4L7FrxpKTEZxq0m/OPZUkuIJ4xGpu5qOq8DAsDgU4v+ +C1JvBr6H/GJ0f5cFShPCXFlrAgMBAAGjWTBXMA4GA1UdDwEB/wQEAwIFoDATBgNV +HSUEDDAKBggrBgEFBQcDATAfBgNVHSMEGDAWgBQTBX2ybplAWySTzNHzceSAS9MH +wDAPBgNVHREECDAGhwTAqIKDMA0GCSqGSIb3DQEBCwUAA4IBgQCMVPuwe9iOJW6A +Cvb2lLTVCkfqn0jXgSOzEfP7j0eV01ayXpsFiNX4z0b6ACX4HNkjUFT7r3h/zVbu +JyYIEbHHwiqZXCaAg5QENqvPqzx34eHNROFEixBH1Y1VgiEEiKP5QOiTxIQLvcls +TSsXMeg58bYNYB0zmQ0wRe+r88nIkNU8R+J4BFbkgSeZch3ScXi15hfyItw81546 +hYK1ncMH3r8ZLzKcOQEnSw4SAJTMUPmePwr7GlqIhpFRnidyvx1cK8jR3FnJnoQn +/871s0dYk8ZuBk+mgFMDXXg6wq5oS2xs79BG3/4RaJciL5jtRg6vB36YfclliPfw +mfr3ypJRKusAipPsfPvdcM37GmemzWLb2EYjN+w0oHo7v1uaV8iyNDVIxKxjvGub +9k8VDkT9Ub+cawrH/oECS+avFqViqKUQy0TyG/eHTRV5chQnlnellDy/HnladS+7 +0rvCWOGvnlpvGSQBiCr/iNPhiJhvs0J5m3jBAfml9C5YmY7/900= +-----END CERTIFICATE----- diff --git a/docker/nginx/nginx/cert/server.key b/docker/nginx/nginx/cert/server.key new file mode 100644 index 00000000..21dacc3e --- /dev/null +++ b/docker/nginx/nginx/cert/server.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDSqRj6idrpU7rm +4fiJg8s1KTAl5ZxIu/p76XwDRayPV8XAis0cSgzv/4DoPw2he4oHTZXeyvIvE+NJ +FShzbzGkgMNB8QepoZ28ob+uY9YueC6hizHy41zIkiu5flXxlCEgb3lsZGpZFzqp +6Ase8AimOdWy2A6FNE7EBide08J6WxvdblfPfTDgutygT+dyaT+pWqsutWUO8qmg +Hmb4zwaMksobxMyfi4W2ZPn2VmXml2xw2SW4ZiMCIABMQiZQwZjWfZLo0dMd59PO +pS3SM4L7FrxpKTEZxq0m/OPZUkuIJ4xGpu5qOq8DAsDgU4v+C1JvBr6H/GJ0f5cF +ShPCXFlrAgMBAAECggEAMlwQR5x7A7prfNRaaO1jv8Kn6vdYBB9EAylO5y1Z0i6m +bKAB5phhPWJ0O5EPPiJdXd+TS15yxQRZGlh/ghD76hqKExJ+xXOIVNbKDvN4+UTr +yNyQxULLJHulDkQAYa8KuElN2raqob+m24VIW04Ak1RSHN3/oqJdjgj2knnHDR6Z +b6OwZhF/Axpj45RA3nlD93G6Orb34QEnPxgRig0ma3/xLxU4rpbLd73tDDSk8uDH +z7OAgv/n//TnDTZ8OltRDGY7gUOI1eLqj6Pa/3grwJDPxgO2y4RXO/o6kEMFySPi +8RrvOGElINO60UhgODFe1oPJW05pZnorJz5jjHtAuQKBgQDam2LL18H47DIvARkj +bdOr7LgHvi1NNCLxOCnECTHs6Ns44Q+0xUDIf04iBr8AvcHyvspPg6mLRgTojT4t +HFujQ991RchHAbF2gMqGZQ9wn83bpaDWN9Ig2drYx2fkWwIerwuNuTV/es7gELhb +oWGhyh86syl9PO3Elab/h6jbPQKBgQD2sb5rw+9bw0tvi+XLFM7K+JeQsLZTblyd +4dCUdOvNd8GfImMBJKGq20SVM2yQtq/ATzphK5Al0GKtsnlSGOfGSgfJ4sd/xD3O +6Fe+Q7MgHoXnEuvNyEQ1wlEDGrae3FVih7XHJ60J+6XKaJQv6VdeQmVq2IlrOU8H +ofSiv+RxxwKBgQCxTUnqDopSfC+PlBJxe8gsLwhrr0FK1rhocKbfSp3lik8TaOa2 +NS3/79DNJC+SSFWfrkKkDyNZxGaCvtvo9pEUcB4zHW/8t1DZzkd0jU7ih5oNRd6X +IBsbbdZj8AdBXNbxUAPM5KSRSmezr5v3JYLsF+UQVPOXke0+fio+Iic/+QKBgFuG +yKp88IJwK72//srg9nRR1RHmrk64BH7DODrMQmxiASFEhcz3xU95uLFOefoa/Yvx +GSzSF9IfxWzCacau3NcxwkAB9piNu4zXoS5DOeMxz+ZSm9AmfEAhzyLCt3yrLLa4 +uRWhv86TYgh90nUQMs0S/0OsARgaFBs12GjFn0EjAoGAVz2vvNKi6F6kunm055T/ +vhgB28Qt2EojcOQeQ9ARTH/VuPDMjTmbU6iip0mFRImUmFnSKY4+4+K7HAB9oxHG +w1/sPsymosVrgPKloJ3vU7yJI2JYgbsjZRhscPYE7Ir7mVhlNyuO6wJOHGK7Lex2 +MR2JpfmcOIHRRqrwAa+Gmss= +-----END PRIVATE KEY----- diff --git a/docker/nginx/nginx/conf.d/default.conf b/docker/nginx/nginx/conf.d/default.conf index 28ad83e9..32453f53 100644 --- a/docker/nginx/nginx/conf.d/default.conf +++ b/docker/nginx/nginx/conf.d/default.conf @@ -29,9 +29,28 @@ upstream workcase-wechat { server urban-lifeline-web:8004; } +# HTTP 重定向到 HTTPS server { listen 80; server_name localhost; + return 301 https://$host$request_uri; +} + +# HTTPS 服务 +server { + listen 443 ssl; + server_name localhost; + + # SSL 证书配置 + ssl_certificate /etc/nginx/ssl/server.crt; + ssl_certificate_key /etc/nginx/ssl/server.key; + + # SSL 安全配置 + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305; + ssl_prefer_server_ciphers on; + ssl_session_cache shared:SSL:10m; + ssl_session_timeout 10m; # 健康检查端点 location /health { diff --git a/docker/nginx/volumes/conf.d/default.conf b/docker/nginx/volumes/conf.d/default.conf index a4c9a614..32453f53 100644 --- a/docker/nginx/volumes/conf.d/default.conf +++ b/docker/nginx/volumes/conf.d/default.conf @@ -42,8 +42,8 @@ server { server_name localhost; # SSL 证书配置 - ssl_certificate /etc/nginx/cert/server.crt; - ssl_certificate_key /etc/nginx/cert/server.key; + ssl_certificate /etc/nginx/ssl/server.crt; + ssl_certificate_key /etc/nginx/ssl/server.key; # SSL 安全配置 ssl_protocols TLSv1.2 TLSv1.3; diff --git a/urbanLifelineWeb/packages/bidding/index.html b/urbanLifelineWeb/packages/bidding/index.html index eb33f744..c00c4998 100644 --- a/urbanLifelineWeb/packages/bidding/index.html +++ b/urbanLifelineWeb/packages/bidding/index.html @@ -7,7 +7,8 @@ 招标管理系统 - + + + +
diff --git a/urbanLifelineWeb/packages/workcase/index.html b/urbanLifelineWeb/packages/workcase/index.html index 73dc6202..2c9126b8 100644 --- a/urbanLifelineWeb/packages/workcase/index.html +++ b/urbanLifelineWeb/packages/workcase/index.html @@ -7,7 +7,8 @@ 案例管理系统 - + +