【问题标题】:ssl fails with 404ssl 以 404 失败
【发布时间】:2021-01-12 13:37:48
【问题描述】:

我有一个配置为将我的 www 地址重定向到非 www 的 nginx 文件。它可以正常工作,但是当我尝试获取 www 地址的 ssl 证书时,它会失败并出现 404 错误。

我不会打扰它,但我正在尝试改进 SEO,而 https 网站的 www 地址返回 ERR_TLS_CERT_ALTNAME_INVALID,这似乎会降低 SEO。

任何帮助将不胜感激。

这是我用于重定向的 nginx 配置。我还有一个带有 www 地址设置的 A 名称 DNS 记录,这会影响它吗?

server {
  listen 80;
  server_name www.example.com.au;
  return 301 https://example.com.au$request_uri;
}

server {
  listen 443 ssl;
  access_log  /var/log/nginx/domain.access.log;
  error_log  /var/log/nginx/domain.error.log debug;
  server_name www.example.com.au;
  ssl certificates...
  return 301 https://example.com.au$request_uri;
}

【问题讨论】:

  • 这些块都不会生成 404 响应。尝试获取 SSL 证书是什么意思?例如,Let's Encrypt 可能使用http://www.example.com/.well-known/... 来访问令牌,而您的配置只会将其重定向到您的其他站点。
  • 你是对的,地址不会返回 404 响应,但 acme 挑战 url 会:raise ValueError("Wrote file to {0}, but couldn't download {1}: {2}".format(wellknown_path, wellknown_url, e)) ValueError: Wrote file to /var/www/letsencrypt/.well-known/acme-challenge/F7qFpSzL2GWPiJuUZhez_SLxN9xcBIkYwYQHuo4BvHI, but couldn't download http://www.mydomain.com.au/.well-known/acme-challenge/...: Error: Url: http://www.mydomain.com.au/.well-known/acme-challenge/F7qFpSzL2GWPiJuUZhez_SLxN9xcBIkYwYQHuo4BvHI 数据:无响应代码:404
  • 使用nginx -T(大写T)查看所有包含文件的完整配置,并确保上述server块与正确的server_name一起出现。但主要问题是现在有办法提供像 /.well-known/acme-challenge/ 这样的 URI,请参阅 this answer
  • 你是个传奇,谢谢队友。就我而言,它是root /var/www/letsencrypt。我将在下面添加完整的 sn-p。

标签: ssl nginx dns


【解决方案1】:

在我的情况下,以下 sn-p 为我解决了它(添加根和位置块):

server {
  listen 80;
  server_name www.example.com.au;
  root /var/www/letsencrypt;

  location /.well-known/acme-challenge/ {
    default_type "text/plain";

    try_files $uri =404;
  }

  location / {
    return 301 https://example.com.au$request_uri;
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-28
    • 2011-09-12
    • 2016-07-15
    • 1970-01-01
    • 2011-07-13
    • 2012-10-11
    • 2015-03-16
    相关资源
    最近更新 更多