标签: lets-encrypt

使用 Certbot 添加 SSL 证书时如何指定 80 以外的端口?

我有一台运行 2 个不同 Web 服务器(Apache 和 Nginx)的服务器。Apache 服务器负责处理定向到 Wordpress 站点的所有流量,而 Nginx 服务器则为我的 Python API 和 React Web App 提供服务。

由于与 Apache 的端口冲突,我必须将 API 设置为在端口 88 上运行,将 React 应用程序设置为在端口 90 上运行。我用这种方式进行了测试,结果成功了。所有请求都会转发到 443,所以我认为不安全端口是什么并不重要。

当我最终运行命令来添加证书时:

sudo certbot --nginx -d a.domain.com
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误。经过进一步检查,我发现它试图在端口 80 而不是 88 上打开域。我做了一些研究并找到了规则--http-01-port并将其设置为 88,但它再次给了我同样的错误:

sudo certbot --nginx --http-01-port 88 -d a.domain.com
Run Code Online (Sandbox Code Playgroud)

经过多次尝试后,我担心 certbot 可能很快就会因为怀疑垃圾邮件而阻止我几个小时或几天,而我已经没有可能的解决方案了。

以前有人处理过这个吗?你是怎么解决这个问题的?

port lets-encrypt certbot

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

在 Docker 的官方 Wordpress 容器中使用 Let's Encrypt

我试图让咱们加密正式泊坞WordPress的容器。

设置环境

$ cat docker-compose.yml
wordpress:
  hostname: some.fqdn.com
  image: wordpress
  links:
    - db:mysql
  ports:
    - 80:80
    - 443:443

db:
  image: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: example

$ docker-compose -f docker-compose.yml up -d
$ docker exec -ti root_wordpress_1 bash
Run Code Online (Sandbox Code Playgroud)

安装让我们加密

$ apt-get update && apt-get install -y git-core
[...]
$ cd /usr/local
$ git clone https://github.com/letsencrypt/letsencrypt
[...] 
$ cd letsencrypt/
$ ./letsencrypt-auto --apache
Checking for new version...
Requesting root privileges to run letsencrypt...
   /root/.local/share/letsencrypt/bin/letsencrypt --apache
An unexpected error occurred:
PythonDialogBug
Please …
Run Code Online (Sandbox Code Playgroud)

wordpress docker lets-encrypt

8
推荐指数
1
解决办法
2327
查看次数

让我们加密 OpenVPN AS

我有一个 OpenVPN AS 正在运行,我正在尝试从 letencrypt 设置 SSL 证书(运行 ubuntu)。

我已经设法从letsencrypt(使用letsencrypt独立)获取我的证书,我希望在OpenVPN ssl配置中创建一个指向证书的符号链接。但是,当我查看/usr/local/openvpn_as/etc/web-ssl它时,它与我的/live/domain/cert.pem等...

有谁知道我如何将我的 openvpn 作为实例提供 Letencrypt 证书?

编辑:ls -l 目录

openvpnas@openvpnas2:/usr/local/openvpn_as/etc/web-ssl$ ls -l
total 16
-rw-r--r-- 1 root root 1111 Mar 10 13:30 ca.crt
-rw------- 1 root root 1708 Mar 10 13:30 ca.key
-rw-r--r-- 1 root root 1078 Mar 10 13:30 server.crt
-rw------- 1 root root 1704 Mar 10 13:30 server.key



root@openvpnas2:/etc/letsencrypt/live/my.domain# ls -l
total 0
lrwxrwxrwx 1 root root 37 Mar 10 19:03 cert.pem -> ../../archive …
Run Code Online (Sandbox Code Playgroud)

ssl openvpn lets-encrypt

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

在多域上使用 SSL,自动扩展 Elastic Beanstalk 设置

我们正在为我们的公司创建一个内容管理系统。重要的是,此 CMS 支持动态数量的服务器上的动态域名。经过数小时的研究,我们认为 Amazon 的 Elastic Beanstalk 是最佳选择。我们还需要的一件事是能够为与我们的系统关联的域动态启用 SSL。

因此,在我们的系统中,我们可以创建一个与域相关联的“站点”。创建站点时,我们还应该能够选择是否通过 SSL/TLS 托管域。我们计划对系统进行白标,并预计将有大量域与其关联。

我一直在探索能够在服务器(或负载平衡器)上设置 SSL 并能够动态更改哪些域受到保护的不同可能性。这是我所在的位置:

  • 使用亚马逊的证书管理器:这将是最理想的方式。它与 AWS 集成并且非常易于使用。但是,它有几个使人衰弱的限制: 1. 每次请求新证书时,您都必须通过电子邮件验证每个域。没什么大不了的 2. 它不能将证书应用于 EC2 实例,只有负载均衡器和负载均衡器只能分配一个证书。这意味着每当您想要保护另一个域时,您都必须重新验证每个域。不好。
  • 在负载均衡器上使用 Let's Encrypt:这将是保护我们网站的下一个最佳方式(我可以看到)。每当需要保护新站点时,我们都会为所有需要 SSL 的域请求新证书。创建证书后,我们将其推送到 IAM 并告诉 EBS 将负载均衡器与新证书相关联。我看到的唯一问题是LetsEncrypt 将他们的证书限制为 100 个域,非免费但相对便宜的 SSL 提供商 SSLMate 也是如此。现在可能工作,但它不能扩展。是否有自动 SSL 提供程序对证书上的域数量没有限制?
  • 使用 Passthrough SSL:Amazon 的 Elastic Beanstalk 允许您以这样的方式设置它,以便负载均衡器将加密的流量直接传递到 EC2 实例。然后您可以允许 EC2 实例处理证书。然后我可以利用 LetsEncrypt 并为每个域分配一个单独的证书。我在考虑自动缩放时遇到了一个问题:我们需要跨实例复制证书。我的解决方案是将证书存储在安全的 S3 存储桶中,然后在所有 EC2 实例上运行一个 cron 以提取新的/更新的证书。

最后一个想法有什么问题吗?我正在尝试做的事情有更好的解决方案吗?我错过了什么吗?在意?或者也许是我问题的超级简单解决方案?

请注意,我使用的是 docker,所以我可以在服务器上设置任何我需要的东西。

ssl multi-tenancy autoscaling elastic-beanstalk lets-encrypt

8
推荐指数
1
解决办法
1126
查看次数

Letsencrypt - 我是否需要保持“.well-known”可访问以进行证书续订?

我为我的 Apache 2.4 服务器创建了一个证书。为了验证我的服务器,让加密创建了文件夹.well-known并访问了它。

我是否需要保持此文件夹可访问(用于证书续订)还是可以删除/阻止该文件夹?

apache-2.2 apache-2.4 lets-encrypt

8
推荐指数
1
解决办法
1370
查看次数

在 Neo4j 中使用 LetsEncrypt 证书

如何将 LetsEncrypt 生成的证书文件与 Neo4j 实例一起使用?LetsEncrypt 生成的文件是:

  • 证书文件
  • 链表
  • fullchain.pem
  • 私钥文件

到目前为止,我已经尝试通过 OpenSSL进行转换,但没有成功,使用从 PEM 到 DER 的转换。Neo4j 抱怨在启动时找不到证书。问题是如何将 LetsEncrypt 证书转换为 Neo4j 可以使用的东西。

设置细节:

  • 证书/var/lib/neo4j/certificates/以名称neo4j.{cert,key}、权限600、归neo4j:nogroup. 所有这些似乎都是根据文档
  • 在配置中,我用这一行来指定证书路径: dbms.directories.certificates=/var/lib/neo4j/certificates
  • 在配置中,我还启用了通过 HTTPS 的远程访问: dbms.connector.https.address=0.0.0.0:7473

重新启动 Neo4j 时,我收到以下错误消息:

WARN  Illegal character 0x16 in state=START for buffer HeapByteBuffer@5a260174[p=1,l=193,c=8192,r=192]={\x16<<< SEVERAL_LINES_OF_HEX_JIBBERISH_HERE }
WARN  badMessage: 400 Illegal character 0x16 for HttpChannelOverHttp@5d682358{r=0,c=false,a=IDLE,uri=-}
Run Code Online (Sandbox Code Playgroud)

openssl ssl-certificate neo4j lets-encrypt

8
推荐指数
1
解决办法
1304
查看次数

如何为非面向公众的服务器获取 Let's Encrypt 证书?

我有一个私有 Apache 服务器,只能从我的 LAN 端口 443 访问,并带有 StartSSL 证书。

由于 Firefox 51 发布,我无法再连接到它,因为StartSSL 根证书已从信任库中删除

我考虑过迁移到 Let's Encrypt,但这似乎需要面向公众的 HTTP 服务器。在我的情况下可以使用 Let's Encrypt 吗?

如果可能的话,我宁愿避免为 SSL 证书付费。

ssl-certificate lets-encrypt

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

试图在 ssllabs.com 密钥交换中获得 100%

我想知道在 ssllabs.com 的每个类别上获得 100% 需要哪些步骤。我知道这可能会导致旧系统出现问题,但我不在乎。

我的letsencrypt.org 证书使用 4096 位。这是我使用以下配置可以获得的最好成绩:

SSLCipherSuite AES256+EECDH:AES256+EDH:!aNULL
SSLHonorCipherOrder on
SSLProtocol all -TLSv1.1 -TLSv1 -SSLv3 -SSLv2
Run Code Online (Sandbox Code Playgroud)

添加 DHParameters 之前的分数

我在某处读到可以使用预先生成的 dhparam 文件改进密钥交换。

所以我使用openssl dhparam -out dhparam.pem 4096(这花了大约一个小时)生成了这个文件,并将它添加到我的 apache 配置中使用

SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Run Code Online (Sandbox Code Playgroud)

但这会导致与以前相同的分数。那么我在这里错过了什么?

完整的 ssllabs.com 结果

ssl https lets-encrypt apache2

8
推荐指数
1
解决办法
8424
查看次数

添加 ssl 后,nginx“ERR_TOO_MANY_REDIRECTS”

当我使用CertBot将Let's Encrypt证书添加到我的网站后,当我尝试访问我的网站域时, 我得到了。ERR_TOO_MANY_REDIRECTS

一些信息:

-mywebsite 使用 django、nginx 和 Gunicorn 构建。

server {
server_name www.example.com example.com;

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
    root /home/myproject;
}

location / {
    include proxy_params;
    proxy_pass http://unix:/run/gunicorn.sock;
}


listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = www.example.com) …
Run Code Online (Sandbox Code Playgroud)

ssl nginx redirect lets-encrypt certbot

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

带有 LetsEncrypt 的通配符 SSL 出现错误

我想通过 为我的网站创建通配符 SSL LetsEncrypt。我按照说明运行后Certbot,它给了我一个 DNS 挑战并说:

Please deploy a DNS TXT record under the name

_acme-challenge.db.example.com with the following value:
 jn324jr348r342bhr234hrou234nbr4324fj34r
Run Code Online (Sandbox Code Playgroud)

db.example.com 也在里面/etc/bind/

我所做的是打开db.example.com并在底线添加以下内容:

_acme-challenge.db.example.com 3600 IN TXT "jn324jr348r342bhr234hrou234nbr4324fj34r"
Run Code Online (Sandbox Code Playgroud)

但是当我像这样检查它时:

nslookup -type=TXT _acme-challenge.example.com
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误:

 - The following errors were reported by the server:                           

   Domain: db.example.com                                                
   Type:   dns                                                                 
   Detail: DNS problem: NXDOMAIN looking up TXT for                            
   _acme-challenge.db.example.com - check that a DNS record              
   exists for this domain                                                      
ubuntu@me-1:/etc/bind$ nslookup -type=TXT _acme-challenge.example.com
Server:         127.0.0.53                                                     
Address: …
Run Code Online (Sandbox Code Playgroud)

domain-name-system ssl ssl-certificate txt-record lets-encrypt

8
推荐指数
2
解决办法
2043
查看次数