【问题标题】:Add certificate to my site when accessing without “www”在没有“www”的情况下访问时将证书添加到我的站点
【发布时间】:2019-11-13 15:08:53
【问题描述】:

我的域名是:www.nace.network

我的网络服务器是(包括版本):nginx版本:nginx/1.15.8

我的网络服务器运行的操作系统是(包括版本):Ubuntu 14.04.6 LTS

我可以登录到我机器上的 root shell(是或否,或者我不知道):是

我的客户端版本是(例如,如果您使用 Certbot,则输出 certbot --version 或 certbot-auto --version):certbot 0.31.0

最近我能够为我的网站更新我的证书,我可以通过 www.nace.network 访问它,但是在不使用“www”访问我的网站时,它会向我发送“警告:潜在的安全风险”警报,我可以用什么方法修复它?这是我的 nginx 文件的内容:

server {
listen 8080 default_server;
listen [::]:8080 default_server ipv6only=on;
server_name www.nace.network;
root /home/ubuntu/nace/public; #could maybe change this to dummy location like /nul
location / {
return 301 https://$host$request_uri;
}#location
}#server

server {
  listen [::]:443 ssl ipv6only=on; # managed by Certbot
  listen 443 ssl; # managed by Certbot
  server_name www.nace.network;
  passenger_enabled on;
  rails_env production;
  root /home/ubuntu/nace/public;
  # redirect server error pages to the static page /50x.html
  error_page 500 502 503 504 /50x.html;
  location / {
   deny 46.229.168.0;
   deny 51.68.152.0;
  }#locatoin
  location = /50x.html {
  root html;
  }#location
  ssl_certificate /etc/letsencrypt/live/www.nace.network/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/www.nace.network/privkey.pem; # managed by Certbot

  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot

}#server

当时我用这个命令更新证书:

ubuntu@ip-112-33-0-224:~/letsencrypt$ sudo -H ./letsencrypt-auto certonly --standalone -d nace.network -d www.nace.network

结果就是这样

./letsencrypt-auto has insecure permissions!
To learn how to fix them, visit https://community.letsencrypt.org/t/certbot-auto-deployment-best-practices/91979/
/opt/eff.org/certbot/venv/local/lib/python2.7/site-packages/cryptography/hazmat/primitives/constant_time.py:26: CryptographyDeprecationWarning: Support for your Python version is deprecated. The next version of cryptography will remove support. Please upgrade to a release (2.7.7+) that supports hmac.compare_digest as soon as possible.
  utils.PersistentlyDeprecated2018,
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for nace.network
Cleaning up challenges
Problem binding to port 80: Could not bind to IPv4 or IPv6.

我尝试将证书与命令结合起来:certbot certonly -t -n --standalone --expand --rsa-key-size 4096 --agree-tos -d www.nace.network,nace.network

但它抛出了以下内容:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator standalone, Installer None
Attempting to parse the version 0.39.0 renewal configuration file found at /etc/letsencrypt/renewal/www.nace.network.conf with version 0.31.0 of Certbot. This might not work.
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for nace.network
Cleaning up challenges
Problem binding to port 80: Could not bind to IPv4 or IPv6.

【问题讨论】:

  • 您的证书仅包含www.nace.network - 它不包含nace.network 请检查/etc/letsencrypt/live/nace.network 中是否没有证书 - 如果有,那么您可能需要合并它们。
  • @IVO GELOV 好的,文件似乎存在:root@ip-112-33-0-224:/etc/letsencrypt/live/nace.network# ls README cert.pem 链。 pem fullchain.pem privkey.pem
  • 您可以尝试手动将它们组合成一个更大的全链 - 但由于它们肯定有不同的私钥,我建议重新创建 www.nace.network 证书以包含两个域名 - 类似于 @987654330 @
  • @IVOGELOV 我执行了命令,我认为它没有工作,似乎是因为端口 80 忙,我更新了帖子并粘贴了命令的完整结果,你可以看到它
  • 那么,您可以通过添加location /.well-known/acme-challenge/ { root /var/www/challenges/; } 并确保该文件夹存在并具有适当的所有权和权限,为CertBot 的webroot 模式配置nginX。但是,您可以更轻松地从非 www 域重定向到 www 域 - 如下 Tavanez 所述。

标签: ssl nginx ssl-certificate lets-encrypt


【解决方案1】:

证书上配置了哪些名称?

您好,再次查看您的配置,我注意到您没有没有 www 的服务器名称。

你可以关注这个Nginx no-www to www and www to no-www

或简单地将服务器名称编辑为不带“www”的名称,然后将其重定向到 www.yourdomain.stuff

【讨论】:

  • 当时我用这个命令更新证书 sudo -H ./letsencrypt-auto certonly --standalone -d nace.network -d www.nace.network
  • 感谢您的回答,所以在我的情况下,我应该有 4 个服务器块吗?我有两个用于 www.nace.network 和另外两个用于 nace.network?
  • 嗨,杰夫,不只是 2. 一个带有 server_name www..nace.network 的块和另一个带有 server_name nace.network 的块假设您只会使用 https,这对我来说更有意义
  • 好的,我修改到服务器 nace.network 的第二个块,但在访问 nace.network 时它仍然向我显示风险消息我还缺少什么?
猜你喜欢
  • 2018-09-28
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 2012-06-28
  • 1970-01-01
  • 2014-02-07
  • 1970-01-01
相关资源
最近更新 更多