标签: lets-encrypt

为什么HAProxy无法加载letsencrypt生成的证书?

HAProxy无法加载letsencrypt生成的.pem文件,为什么会这样?

我看到的错误是:

parsing [/haproxy.cfg:37] : 'bind :443' : unable to load SSL private key from PEM file '/certs/cert0.pem'.

PEM文件的内容是:

-----BEGIN CERTIFICATE----- MIIFCjCCA/KgAwIBAgISATGh2D5ZMcKNqpIqViwd5EZOMA0GCSqGSIb3DQEBCwUA MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMTAeFw0xNTEyMTcwOTIyMDBaFw0x NjAzMTYwOTIyMDBaMB4xHDAaBgNVBAMTE3N0YWdpbmcubXV6aGFjay5jb20wggEi MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrV1XqamfHm6tbDYAbnbjRxBw8 pxM/wPdO9RLUk5EmPnYy0XmPrbge93M5hh4qzMA7IGRxRa4xXjmj2nl4y6oLmRzF nqHRBznh0D3u27dOmxk9vgWEGFO423T4W4DW5T6ukw+i2V5zxdtiu9tP7s8qsN7P IxKQ8tPx8NB0PYXTg+DWhPQMZkX3Q63YEJrl6pR1kQ+shOg1WRw08/gfl8YCH0bj AtbSPwwSNzNVylgA2IZX6mTrBYnbXJ5N63Ee/p1e+vw9fqxha4B4qPpNoByvgR27 cIGFjEoBzeS76awPzBnZLWNaVqM3E0YL9riQnAAgYPrqBIofV65GELBjwVRFAgMB AAGjggIUMIICEDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG CCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFC5MVU7RKuD07ZwP6kGT 49qPO2tFMB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMHAGCCsGAQUF BwEBBGQwYjAvBggrBgEFBQcwAYYjaHR0cDovL29jc3AuaW50LXgxLmxldHNlbmNy eXB0Lm9yZy8wLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14MS5sZXRzZW5j cnlwdC5vcmcvMB4GA1UdEQQXMBWCE3N0YWdpbmcubXV6aGFjay5jb20wgf4GA1Ud IASB9jCB8zAIBgZngQwBAgEwgeYGCysGAQQBgt8TAQEBMIHWMCYGCCsGAQUFBwIB FhpodHRwOi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCBqwYIKwYBBQUHAgIwgZ4MgZtU aGlzIENlcnRpZmljYXRlIG1heSBvbmx5IGJlIHJlbGllZCB1cG9uIGJ5IFJlbHlp bmcgUGFydGllcyBhbmQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIENlcnRp ZmljYXRlIFBvbGljeSBmb3VuZCBhdCBodHRwczovL2xldHNlbmNyeXB0Lm9yZy9y ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAmcF6jtx6QWAOQtRLhnuDyViJ 9ISP2mw8Ueq5p3L/oBMebCAjS1qv7bCcHP5RyeaqsGrHclpv090JY44rCppj5oOh OFzzsNqZ5dwLp8vNbPls1Y7ohThVxk5PfMGpfkDwpuZGxUkizB7qQtknjBr6lX2B XX2/IknJnABU2ssh2q77aqeVkHYVWXYG8iNMETUcIys1/Mb7X/FdL1DGRhkS1kN0 geL/+e7pmusHijkSoOP7IXFgTfcnw1DiIPctXmH2/ETcQ5deWVTgOpCTBk0M1+d2 oFFNaePdQXk4iRYlJNrswoZCSgdqqUybvEcJDKvL+ogi6GwZpJCIn/Rc2PWhGQ== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEqDCCA5CgAwIBAgIRAJgT9HUT5XULQ+dDHpceRL0wDQYJKoZIhvcNAQELBQAw PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD Ew5EU1QgUm9vdCBDQSBYMzAeFw0xNTEwMTkyMjMzMzZaFw0yMDEwMTkyMjMzMzZa MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMTCCASIwDQYJKoZIhvcNAQEBBQAD ggEPADCCAQoCggEBAJzTDPBa5S5Ht3JdN4OzaGMw6tc1Jhkl4b2+NfFwki+3uEtB BaupnjUIWOyxKsRohwuj43Xk5vOnYnG6eYFgH9eRmp/z0HhncchpDpWRz/7mmelg PEjMfspNdxIknUcbWuu57B43ABycrHunBerOSuu9QeU2mLnL/W08lmjfIypCkAyG dGfIf6WauFJhFBM/ZemCh8vb+g5W9oaJ84U/l4avsNwa72sNlRZ9xCugZbKZBDZ1 gGusSvMbkEl4L6KWTyogJSkExnTA0DHNjzE4lRa6qDO4Q/GxH8Mwf6J5MRM9LTb4 4/zyM2q5OTHFr8SNDR1kFjOq+oQpttQLwNh9w5MCAwEAAaOCAZIwggGOMBIGA1Ud EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMH8GCCsGAQUFBwEBBHMwcTAy BggrBgEFBQcwAYYmaHR0cDovL2lzcmcudHJ1c3RpZC5vY3NwLmlkZW50cnVzdC5j b20wOwYIKwYBBQUHMAKGL2h0dHA6Ly9hcHBzLmlkZW50cnVzdC5jb20vcm9vdHMv ZHN0cm9vdGNheDMucDdjMB8GA1UdIwQYMBaAFMSnsaR7LHH62+FLkHX/xBVghYkQ MFQGA1UdIARNMEswCAYGZ4EMAQIBMD8GCysGAQQBgt8TAQEBMDAwLgYIKwYBBQUH AgEWImh0dHA6Ly9jcHMucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcwPAYDVR0fBDUw MzAxoC+gLYYraHR0cDovL2NybC5pZGVudHJ1c3QuY29tL0RTVFJPT1RDQVgzQ1JM LmNybDATBgNVHR4EDDAKoQgwBoIELm1pbDAdBgNVHQ4EFgQUqEpqYwR93brm0Tm3 pkVl7/Oo7KEwDQYJKoZIhvcNAQELBQADggEBANHIIkus7+MJiZZQsY14cCoBG1hd v0J20/FyWo5ppnfjL78S2k4s2GLRJ7iD9ZDKErndvbNFGcsW+9kKK/TnY21hp4Dd ITv8S9ZYQ7oaoqs7HwhEMY9sibED4aXw09xrJZTC9zK1uIfW6t5dHQjuOWv+HHoW ZnupyxpsEUlEaFb+/SCI4KCSBdAsYxAcsHYI5xxEI4LutHp6s3OT2FuO90WfdsIk 6q78OMSdn875bNjdBYAqxUp2/LEIHfDBkLoQz0hFJmwAbYahqKaLn73PAAm1X2kj f1w8DdnkabOLGeOVcj9LQ+s67vBykx4anTjURkbqZslUEUsn2k5xeua2zUk= -----END …

haproxy ssl-certificate lets-encrypt

4
推荐指数
1
解决办法
2574
查看次数

Letsencrypt-将安装的证书更改为使用--webroot进行续签,而不是使用--standalone

我已经使用--standalone标志设置了证书,这很好用,但是问题是每次必须更新证书时,我都必须停止Nginx服务器,因为--standalone选项要求端口80可用。

--webroot方法不需要停止服务器,并且基本上不需要关闭服务器上的所有站点。

因此,是否可以使用--webroot更新使用--standalone标志安装的证书?

nginx lets-encrypt

4
推荐指数
1
解决办法
377
查看次数

使用certbot应用“加密证书:授权过程失败”

我正在使用certbot应用Let's Encrypt证书,我的服务器是centos 7.2和nginx 1.11.9。下面是什么意思?

[root@test ~]# certbot certonly --webroot -w /var/www/www.example.com -d example.com -d www.example.com

Failed authorization procedure. example.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://example.com/.well-known/acme-ch
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>", www.example.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.example.com/.well-known/acme-challenge/k
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>"

IMPORTANT NOTES:
 - If you lose your account credentials, you can recover …
Run Code Online (Sandbox Code Playgroud)

https nginx lets-encrypt

4
推荐指数
2
解决办法
4921
查看次数

添加.well-知道asp.net核心

我希望.well-known在我的root中有一个目录用于letsencrypt续订.

我添加了一条路线.well-known:

 app.UseStaticFiles(new StaticFileOptions
        {
            FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @".well-known")),
            RequestPath = new PathString("/.well-known"),
            ServeUnknownFileTypes = true // serve extensionless file
        });
Run Code Online (Sandbox Code Playgroud)

我在我的wwwroot中添加了一个direcotry,.well-known但是当我发布时它永远不会被复制到输出中.

我尝试添加一个文件,并编辑csproj:

  <ItemGroup>
    <Content Include="wwwroot\.well-known\" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

每次我发布我都要手动创建目录.如何将其自动添加到wwwroot?

c# lets-encrypt asp.net-core

4
推荐指数
3
解决办法
2133
查看次数

如何在 docker 容器中使用 nginx-proxy 通过 ssl 安全地运行 Gitlab

我已经与这种配置斗争了好几天了,无论我做什么,我都无法让它完全工作。有人可以帮我吗??

我正在使用这里描述的这个解决方案:https : //github.com/JrCs/docker-letsencrypt-nginx-proxy-companion它适用于我的所有其他容器,但不适用于 gitlab。使用此方法,只有 gitlab 登录页面在绿色挂锁和文本 Secure 消失后才能完全保护,并且 https 告诉我;“您与该站点的连接并不完全安全”。我已经检查了 gitlab 容器内的日志,它发现 ssl 证书很好,并且没有给出其他错误或表明出现问题的迹象。任何人?

文件:start.up

#!/bin/bash
docker run -d \
    --name ng \
    -p 80:80 \
    -p 443:443 \
    -v /etc/nginx/conf.d  \
    -v /root/network/nginx/vhost.d:/etc/nginx/vhost.d \
    -v /root/network/nginx/html:/usr/share/nginx/html \
    -v /root/network/nginx/certs:/etc/nginx/certs:ro \
    -e DEFAULT_HOST=domain.com \
    -e VIRTUAL_PROTO=https \
    -e VIRTUAL_PORT=443 \
    --label com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy \
    nginx

docker run -d \
    --name ngg \
    --volumes-from ng \
    -v /root/network/nginx/templates:/etc/docker-gen/templates:ro \
    -v /var/run/docker.sock:/tmp/docker.sock:ro \
    --label com.github.jrcs.letsencrypt_nginx_proxy_companion.docker_gen \
    jwilder/docker-gen \
    -notify-sighup nginx …
Run Code Online (Sandbox Code Playgroud)

https gitlab docker lets-encrypt jwilder-nginx-proxy

4
推荐指数
1
解决办法
4047
查看次数

URL 将 http 重写为 https 并加密

我正在尝试在我的 IIS 上设置 URL 重写,以便它处理 http 并让我们加密。我的目标是以下

1) 所有到http://example.comhttp://www.example.comhttps://www.example.com 的流量都应该重定向 (301) 到https://example.com

2) 应保留任何子页面和查询字符串,以便http://www.example.com/whatever/login.aspx?username=blabla变为https://example.com/whatever/login.aspx?username=blabla

3) 对http://example.com/.well-known/acme-challenge/ * 和http://www.example.com/.well-known/acme-challenge/ * 的所有请求(其中“*”可以是任何子页面和查询字符串)不应该被重定向

就像我已经尝试过一切,但我无法让它发挥作用。

iis url-rewriting url-rewrite-module lets-encrypt

4
推荐指数
1
解决办法
1986
查看次数

让我们以“错误:EACCES:权限被拒绝,打开'/etc/letsencrypt/live/domain.net/privkey.pem'”开头的SSL进行加密

我尝试通过Node.js使用SSL,但由于,它无法正常工作permission denied

try {
var TLSoptions = {
    key: fs.readFileSync("/etc/letsencrypt/live/domain.work/privkey.pem"),
    cert: fs.readFileSync("/etc/letsencrypt/live/domain.work/cert.pem")
};

https.createServer(TLSoptions, app).listen(port, host, function() {
   console.log("TLS Website started.")
}); catch(e) {
    console.log(e)
}
Run Code Online (Sandbox Code Playgroud)

=>

{ Error: EACCES: permission denied, open '/etc/letsencrypt/live/domain.work/privkey.pem'
at Object.fs.openSync (fs.js:663:18)
... (Librarys dump)
errno: -13,
code: 'EACCES',
syscall: 'open',
path: '/etc/letsencrypt/live/domain.work/privkey.pem' }
Run Code Online (Sandbox Code Playgroud)

因此,我尝试重新制作* .pem文件。

rm -f /etc/letsencrypt/live
rm -f /etc/letsencrypt/archive    
rm -f /etc/letsencrypt/renewal
sudo ./letsencrypt-auto certonly -a standalone -d domain.work
Run Code Online (Sandbox Code Playgroud)

并检查文件权限。

/etc/letsencrypt/live/domain.work$ ls -lsa
total 12
4 drwxr-xr-x 2 root root …
Run Code Online (Sandbox Code Playgroud)

ssl node.js lets-encrypt

4
推荐指数
2
解决办法
3708
查看次数

为什么我的 heroku 应用程序不使用安全连接

我最近使用以下命令从 heroku 上的免费帐户升级到业余帐户:

 heroku ps:resize web=hobby
Run Code Online (Sandbox Code Playgroud)

我使用以下命令启用了自动证书管理:

 heroku certs:auto:enable
Run Code Online (Sandbox Code Playgroud)

等了几个小时后,我决定运行:

heroku certs:auto
Run Code Online (Sandbox Code Playgroud)

根据我的状态描述,它运行正常。

我什至运行了以下命令:

curl -vI https://www.yaknchat.com
Run Code Online (Sandbox Code Playgroud)

这告诉我我的服务器认证验证没问题。

但是,当我在浏览器中输入https://www.yaknchat.com时,它告诉我“此连接不完全安全”,而不是通常的响应“此连接不安全”。

我做错了什么。我应该进入我的 namescheap 高级 DNS 设置并更改 CNAME 或 AAA 记录吗?另外,是否需要使用 SSL Endpoint(heroku 插件)来为我的应用 url 获取安全的绿色条?

heroku lets-encrypt

4
推荐指数
1
解决办法
2253
查看次数

无法“openssl 验证”letsencrypt 证书

我使用 Certbot 容器通过 Letsencrypt 生成证书:

$ mkdir /home/$USER/letsencrypt
$ docker run -it --rm -p 80:80 -p 443:443 -v /home/$USER/letsencrypt:/etc/letsencrypt certbot/certbot certonly --standalone --email user@example.com --agree-tos -d example.com
Run Code Online (Sandbox Code Playgroud)

我导航到生成的证书:

$ cd /home/$USER/letsencrypt/live/example.com
Run Code Online (Sandbox Code Playgroud)

我可以验证chain.pem

$ openssl verify chain.pem 
chain.pem: OK
Run Code Online (Sandbox Code Playgroud)

我可以看到里面有什么chain.pem

$ openssl x509 -noout -in chain.pem -subject -issuer
subject=C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
issuer=O = Digital Signature Trust Co., CN = DST Root CA X3
Run Code Online (Sandbox Code Playgroud)

我无法验证cert.pem(大概是因为它需要链):

$ …
Run Code Online (Sandbox Code Playgroud)

ssl openssl lets-encrypt certbot

4
推荐指数
1
解决办法
6220
查看次数

Kubernetes 中带有子域重定向的通配符 SSL 证书

我已经使用 cert-manager 和letsencrypt 将我的 Kubernetes 配置为对我的所有应用程序使用一个通配符 SSL 证书,现在的问题是我无法配置子域重定向,因为 Ingress 有点“僵硬”。这是我试图实现这一目标的方法:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-wildcard-ingress
  namespace: mynamespace
  annotations:
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: letsencrypt-prod
    certmanager.k8s.io/acme-challenge-type: dns01
    certmanager.k8s.io/acme-dns01-provider: azuredns
    ingress.kubernetes.io/force-ssl-redirect: "true"
    ingress.kubernetes.io/ssl-redirect: "true"
spec:
  rules:
  - host: "domain.com"
    http:
      paths:
      - path: /
        backend:
          serviceName: some-service
          servicePort: 3000          
  - host: somesub.domain.com
    http:
      paths:
      - path: /
        backend:
          serviceName: some-other-service
          servicePort: 80
  - host: othersub.domain.com
    http:
      paths:
      - path: /
        backend:
          serviceName: one-more-service
          servicePort: 8080          
  - host: "*.domain.com"
    http:
      paths:
      - path: …
Run Code Online (Sandbox Code Playgroud)

wildcard-subdomain kubernetes lets-encrypt kubernetes-ingress cert-manager

4
推荐指数
1
解决办法
4368
查看次数