通过https提供S3资源



我在尝试通过https使用自定义域名服务AWS s3 bucket中的文件时遇到了一个问题。

我今天拥有的:

  • 具有sub.domain.com.s3-xxxxxxx.com访问url的s3存储桶
  • DNS设置为将sub.domain.com重定向到我的一个ec2实例的IP
  • 上面提到的ec2实例带有一个运行我的NGINX配置的docker容器
  • certbot安装在同一实例上

我要做的事情:

  • 重定向https://sub.domain.com到https://sub.domain.com.s3-xxxxxxx.com

我被卡住的地方:

  • Certbot不会为sub.domain.com生成ssl证书

我试图将所有到sub.domain.com的请求重定向到我在NGINX实例上运行的现有网站。我们的想法是生成证书,然后使用它重定向到我的bucket,因为certbot无法在s3 bucket中创建.accknown/acme挑战。

即便这样也无济于事。我有点被困在这里了。我所需要的只是用let's encrypt生成证书,以便让我的自定义域名重定向到https。很明显,我以后需要续订,但我想一旦证书有效创建,就不会有问题了。

提前谢谢。

编辑:忘记发布错误,在这里(用示例替换了我的域名(:

Failed authorization procedure. sub.domain.com (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://sub.domain.com/.well-known/acme-challenge/xxxxx

我的nginx conf:

server {
listen 80;
server_name sub.domain.com;
rewrite ^/(.*)/$ /$1 permanent;
client_max_body_size 11m;
gzip on;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;

root /var/www/html;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
try_files $uri $uri/ /index.html =404;
autoindex on;
}

只需复制/粘贴我的网站conf中为实际网站文件提供服务的部分。

是否可以只制作sub.domain.com来解析到您的ec2 ip?(没有重定向,它应该只使用A或CNAME解析到您的ec2实例(如果是,我们可以让nginx conf将sub.domain.conf/*重定向到您的s3 bucket,并在位置为sub.domain.com/.aknowled/*的情况下从本地读写卷提供文件,这样certbot也可以生成证书。顺便说一句,你是如何为S3 bucket生成证书的?希望这能有所帮助,谢谢!

最新更新