标签: certbot

使用let加密而无需控制根目录

我正在运行Django网站并使用let加密我的SSL.框架的配置使得我无法访问:http://url.com/.xxxx

我可以免费访问的是:http: //url.com/static/.xxxx

我的/ static/URL可以接受并托管任何随机文件,以便加密需求.有没有办法让certbot支持/ static /而不是只使用/为URL?

谢谢

编辑

我发现一个可以接受的工作对我来说是可以接受的.进一步挖掘,我发现/.well-known/始终是SSL检查的基本目录.这意味着我们可以添加一个静态目录,它可以很好地与certbot一起使用.这是如何,首先将其添加到您的apache配置中:

Alias /.well-known/ /var/www/XXXXX/website/static/.well-known/
<Directory /var/www/XXXXX/website/static/.well-known/>
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

然后将其添加到settings.py文件中:

STATIC_ENCRYPT_URL = '/.well-known/'
STATIC_ENCRYPT_ROOT = '/var/www/XXXXX/website/static/'
Run Code Online (Sandbox Code Playgroud)

将其添加到您的urls.py中:

urlpatterns = [
  ... 
] + static(settings.STATIC_ENCRYPT_URL, document_root=settings.STATIC_ENCRYPT_ROOT)
Run Code Online (Sandbox Code Playgroud)

重置您的网络服务器.现在你有一个特殊的url /.well-known/来托管任何certbot所需的文件.

我仍然希望得到比这更好的答案.

apache django ssl lets-encrypt certbot

6
推荐指数
1
解决办法
785
查看次数

systemd:在前一个服务完成后启动服务

我已经安装了 certbot,并且 certbot 制作了自己的 systemd 服务文件“certbot.service”用于自动证书更新,该文件每天通过 .timer 文件启动一次。

成功执行此“certbot.service”后,我喜欢执行第二个(“cert-copy-after-certbot.service”),将证书复制到另一个位置。

目前我的设置如下所示:

“certbot.service”(由 certbot 生成):

pi@raspberrypi:/lib/systemd/system $ cat certbot.service
[Unit]
Description=Certbot
Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html
Documentation=https://letsencrypt.readthedocs.io/en/latest/
[Service]
Type=oneshot
ExecStart=/usr/bin/certbot -q renew
PrivateTmp=true
Run Code Online (Sandbox Code Playgroud)

“cert-copy-after-certbot.service”:

pi@raspberrypi:/etc/systemd/system $ cat cert-copy-after-certbot.service
[Unit]
Description=crt update after certbot has run
Wants=certbot.service
After=certbot.service

[Service]
Type=simple
ExecStart=/bin/sh -c "cat /etc/letsencrypt/live/<mydomain>/privkey.pem  /etc/letsencrypt/live/<mydomain>/fullchain.pem > /etc/ejabberd/ejabberd.pem"
Run Code Online (Sandbox Code Playgroud)

如果我运行这个文件:

systemctl start <unitname>
Run Code Online (Sandbox Code Playgroud)

两项服务均正常运行。

但是当我用“systemctl start certbot”启动 certbot 并检查

systemctl status cert-copy-after-certbot
Run Code Online (Sandbox Code Playgroud)

cert-copy-after-certbot.service 未运行。

是我配置错误了吗?

systemd certbot

6
推荐指数
1
解决办法
7353
查看次数

NGINX + 让我们加密:无法自动找到匹配的服务器块

我正在 Ubuntu 18.04 服务器上发布一个用 Python Pyramid 制作的网站。该网站是在HTTP运行正常,现在我想让它运行HTTPS按照这篇文章,但要安装我得到这个消息时:

IMPORTANT NOTES:
 - Unable to install the certificate
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/dev.anything.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/dev.anything.com/privkey.pem
   Your cert will expire on 2019-03-17. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew" 
Run Code Online (Sandbox Code Playgroud)

这是我的配置文件,它位于/etc/nginx/sites-available/snow_service.nginx

server {
    listen 80; …
Run Code Online (Sandbox Code Playgroud)

ssl nginx lets-encrypt certbot nginx-config

6
推荐指数
2
解决办法
8936
查看次数

Certbot MisconfigurationError:nginx重启失败

在 Ubuntu 16.04、Certbot 0.28.0 和 nginx 1.10.3 的设置中,我无法使用 Certbot 续订现有证书。

  1. 当我运行时sudo certbot renew,它失败并出现以下错误:

    Hook command "nginx -s stop" returned error code 1
    Error output from nginx:
    nginx: [error] invalid PID number "" in "/run/nginx.pid"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 当我运行时sudo certbot --nginx,它因以下错误而失败:

    certbot.errors.MisconfigurationError: nginx restart failed:
    
    Run Code Online (Sandbox Code Playgroud)

ubuntu nginx certbot

6
推荐指数
1
解决办法
757
查看次数

无需 root 即可运行 certbot-auto

我在使用 certbot-auto 更新我的证书时遇到了权限问题,因为每当它运行时都会显示以下消息:

Requesting to rerun certbot-auto with root privileges...
Run Code Online (Sandbox Code Playgroud)

它不需要以 root 身份运行,因为运行该命令的用户拥有 certbot 使用的所有目录的权限。我找不到任何命令行选项来禁用此功能,但查看脚本本身,我发现当它重新运行时,它会检查参数 --cb-auto-has-root,如果存在,它不会尝试(再次)获取根权限。我发现如果我用这个命令运行 certbot-auto ,它就像非 root 一样运行得很好!

但我不确定是否应该使用这个解决方法 - 因为它没有记录 - 或者将来会中断。作为非 root 用户运行的推荐方法是什么?

lets-encrypt certbot

6
推荐指数
0
解决办法
575
查看次数

docker 容器中的 DNS 解析

[环境]

  • CentOS 7
  • Docker 19.03.12,构建 48a66213fe

我有一个失败cerbot一个内(让我们加密客户端)泊坞窗容器。看起来acme-v02.api.letsencrypt.org不能从容器解析但可以从主机解析(最可能的原因)。我已经习惯了容器从主机的 DNS 参数继承的事实,但是对于 AWS EC2 实例,似乎有一些微妙之处

DNS 手动设置

[ec2-user@ip-172-31-32-243 ~]$ cat /etc/resolv.conf 
# Generated by NetworkManager
search eu-west-2.compute.internal
nameserver 172.31.0.2
Run Code Online (Sandbox Code Playgroud)

基于此和AWS 控制台中的一些元素,我尝试手动添加这些地址

docker run --dns 172.31.0.2 --dns 172.65.32.248
Run Code Online (Sandbox Code Playgroud)

(我可能没有找到合适的 DNS)

一个不雅的修复

使用主机的网络解决问题

docker run --network="host"
Run Code Online (Sandbox Code Playgroud)

但我只是不太明白为什么。是否与.net 中使用的网络接口有关--network="host"?以下是可用的:

[ec2-user@ip-172-31-32-243 ~]$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group …
Run Code Online (Sandbox Code Playgroud)

dns docker certbot

6
推荐指数
1
解决办法
1万
查看次数

将 Letsencrypt SSL 添加到 nginx 后 SignalR 失败

我为 SignalR 创建了一个小型演示项目。当我在没有 SSL 的情况下在 Nginx 后面发布我的项目时,这一切都奏效了。但是在我运行 Certbot 并将 SSL 添加到站点后,所有 SignalR 集线器/WebSockets 都停止工作。该网站可以在这里找到:

https://app.topswagcode.com

signalr.js:5053 WebSocket connection to 'wss://app.topswagcode.com/chatHub?id=v_UmTZyB9v962n44Wf2-Kg' failed: 
(anonymous) @ signalr.js:5053
(anonymous) @ signalr.js:5034
step @ signalr.js:4995
(anonymous) @ signalr.js:4976
(anonymous) @ signalr.js:4970
__awaiter @ signalr.js:4966
WebSocketTransport.connect @ signalr.js:5016
HttpConnection.startTransport @ signalr.js:4149
(anonymous) @ signalr.js:4099
step @ signalr.js:3710
(anonymous) @ signalr.js:3691
(anonymous) @ signalr.js:3685
__awaiter @ signalr.js:3681
HttpConnection.createTransport @ signalr.js:4052
(anonymous) @ signalr.js:3970
step @ signalr.js:3710
(anonymous) @ signalr.js:3691
fulfilled @ signalr.js:3682
signalr.js:2150 [2021-06-11T06:43:20.004Z] Error: Failed to …
Run Code Online (Sandbox Code Playgroud)

nginx ssl-certificate signalr asp.net-core certbot

6
推荐指数
1
解决办法
107
查看次数

https Certbot 证书已更新,但连接不安全,直到您重新启动 nginx

我的域名在 Google Chrome 上显示为不安全。

我以 root 身份登录到我的服务器并运行了以下命令:

certbot certificates
Run Code Online (Sandbox Code Playgroud)

它产生了以下输出: certbot 证书有效。

Found the following certificates:
Certificate Name: xyz.com
Domains: xyz.com www.xyz.com
Expiry date: 2022-01-14 (valid: 58 days)
Certificate path: /etc/letsencrypt/live/xyz.com/fullchain.pem
Private key path: ....
Run Code Online (Sandbox Code Playgroud)

然而,该网站显示为不安全。

之后我跑了:

sudo systemctl restart nginx
Run Code Online (Sandbox Code Playgroud)

然后网站就变得安全了。

我该怎么做才能不需要每次更新证书时都重新启动 nginx?

我在 ubuntu 18.04.5 上使用 Nginx 1.14.0 我的客户端版本是: certbot 0.31.0

nginx certbot

6
推荐指数
1
解决办法
5902
查看次数

如何在带有 nginx 的 Amazon Linux 2 上使用 certobot/letsencrypt 启用 HTTPS

在 Amazon Linux 2 上安装 certbot/letsencrypt 并在 nginx 上启用 HTTPS(适用于 apache 的类似过程)

nginx amazon-ec2 lets-encrypt certbot amazon-linux-2

6
推荐指数
2
解决办法
2万
查看次数

如何使用 certbot 生成密钥类型 RSA/ECDSA 加密的证书?

Let's Encrypt Certbot 默认密钥类型已更改为最新版本 2.0.0 的 ECDSA。如何指定生成RSA或ECDSA的密钥类型?

rsa ssl-certificate ecdsa lets-encrypt certbot

6
推荐指数
1
解决办法
1万
查看次数