【发布时间】:2021-05-12 02:51:35
【问题描述】:
我是 nginx 新手,正在尝试使用 this repo 在 s3 存储桶前设置 nginx 代理。
根据 repo,我的设置文件(名称 --> my.settings)看起来像 -
S3_BUCKET_NAME=my-s3-bucket
S3_SERVER=s3.amazonaws.com
S3_REGION=us-east-1
S3_ACCESS_KEY_ID=myaccesskey
S3_SECRET_KEY=mysecretkey
S3_SERVER_PORT=443
S3_SERVER_PROTO=https
S3_STYLE=path
S3_DEBUG=true
AWS_SIGS_VERSION=4
我按照 repo 中的建议使用 -
构建了图像docker build -f Dockerfile.oss -t nginx-oss-s3-gateway .
当我使用 - docker run -p8080:80 --env-file ./my.settings nginx-oss-s3-gateway 运行图像时
图像按预期正常启动。我尝试发送请求以从存储桶中检索对象 - curl -v http://localhost:8080/index.html 并返回 HTTP 404。我查看正在运行的 nginx 容器并看到了这个 -
2021/05/12 02:39:17 [error] 58#58: *1 peer closed connection in SSL handshake while SSL
handshaking to upstream, client: 172.17.0.1, server: , request: "GET /index.html HTTP/1.1",
upstream: "https://52.217.165.200:443/mys3bucket/index.html", host: "localhost:8080"
172.17.0.1 - - [12/May/2021:02:39:17 +0000] "GET /index.html HTTP/1.1" 404 146 "-" "curl/7.64.1" "-"
2021/05/12 02:39:17 [info] 58#58: *1 client 172.17.0.1 closed keepalive connection
我尝试将ssl_verify_client off; 添加到 nginx.conf 并重新加载配置,但这没有帮助。
我感觉这是因为 nginx 无法验证 aws s3 证书?在这种情况下,我应该将 s3 证书导入信任库并指向 nginx 配置吗?我试图通过下载特定证书来避免证书固定。
关于如何解决这个问题的任何建议?
【问题讨论】:
标签: docker nginx ssl amazon-s3