Certbot: CertbotにHSTSで新しい証明書をインストールさせようとしています

作成日 2016年07月08日  ·  4コメント  ·  ソース: certbot/certbot

やあ、

いくつかの背景:
そのため、InterWorxを使用していますが、 CentOS 7 x64 httpdを一時的に停止した後、 ./certbot-auto --hstsが機能せず、 ./certbot-auto certonly --standaloneも機能しないという問題が発生しています。 また、プロキシされていないことにも注意してください。 これはXenVPS上にあります。 また、ポート443へのtelnetがこのサーバーで機能することを確認したので、接続の問題はないはずです...

IW dev / supportは、eidolonhost.comがHSTSプリロードリストを介してプリロードされているため、HSTSがhelmsgate.eidolonhost.comでCertbot-autoの失敗を引き起こしている可能性があることを指摘しました(この問題を修正できるように削除をリクエストしました。 。)しかし、LE証明書を強制的にインストールできる答えがあるのではないかと期待していました。

関連ログ:

[root<strong i="15">@helmsgate</strong> letsencrypt]# cat letsencrypt.log
2016-07-08 00:32:50,790:DEBUG:certbot.main:Root logging level set at 30
2016-07-08 00:32:50,791:INFO:certbot.main:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2016-07-08 00:32:50,791:DEBUG:certbot.main:certbot version: 0.8.1
2016-07-08 00:32:50,791:DEBUG:certbot.main:Arguments: ['--hsts']
2016-07-08 00:32:50,791:DEBUG:certbot.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#apache,PluginEntryPoint#webroot,PluginEntryPoint#null,PluginEntryPoint#manual,PluginEntryPoint#standalone)
2016-07-08 00:32:50,801:DEBUG:certbot.plugins.selection:Requested authenticator None and installer None
2016-07-08 00:32:54,292:DEBUG:certbot.plugins.selection:Multiple candidate plugins: * apache
Description: Apache Web Server - Alpha
Interfaces: IAuthenticator, IInstaller, IPlugin
Entry point: apache = certbot_apache.configurator:ApacheConfigurator
Initialized: <certbot_apache.configurator.ApacheConfigurator object at 0x1fe7750>
Prep: True

* webroot
Description: Place files in webroot directory
Interfaces: IAuthenticator, IPlugin
Entry point: webroot = certbot.plugins.webroot:Authenticator
Initialized: <certbot.plugins.webroot.Authenticator object at 0x28da690>
Prep: True

* standalone
Description: Automatically use a temporary webserver
Interfaces: IAuthenticator, IPlugin
Entry point: standalone = certbot.plugins.standalone:Authenticator
Initialized: <certbot.plugins.standalone.Authenticator object at 0x28da390>
Prep: True
2016-07-08 00:33:15,830:DEBUG:certbot.plugins.selection:Selected authenticator <certbot.plugins.standalone.Authenticator object at 0x28da390> and installer None
2016-07-08 00:33:22,034:DEBUG:root:Sending GET request to https://acme-v01.api.letsencrypt.org/directory. args: (), kwargs: {}
2016-07-08 00:33:22,038:INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
2016-07-08 00:33:33,034:DEBUG:certbot.main:Exiting abnormally:
Traceback (most recent call last):
  File "/root/.local/share/letsencrypt/bin/letsencrypt", line 11, in <module>
    sys.exit(main())
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/main.py", line 744, in main
    return config.func(config, plugins)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/main.py", line 550, in obtain_cert
    le_client = _init_le_client(config, auth, installer)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/main.py", line 360, in _init_le_client
    acc, acme = _determine_account(config)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/main.py", line 345, in _determine_account
    config, account_storage, tos_cb=_tos_cb)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/client.py", line 118, in register
    acme = acme_from_config_key(config, key)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/certbot/client.py", line 42, in acme_from_config_key
    return acme_client.Client(config.server, key=key, net=net)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/client.py", line 63, in __init__
    self.net.get(directory).json())
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/client.py", line 631, in get
    self._send_request('GET', url, **kwargs), content_type=content_type)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/acme/client.py", line 613, in _send_request
    response = self.session.request(method, url, *args, **kwargs)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/root/.local/share/letsencrypt/lib/python2.7/site-packages/requests/adapters.py", line 437, in send
    raise ConnectionError(e, request=request)
ConnectionError: HTTPSConnectionPool(host='acme-v01.api.letsencrypt.org', port=443): Max retries exceeded with url: /directory (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x3303e10>: Failed to establish a new connection: [Errno -2] Name or service not known',))

編集:helmsgate.eidolonhost.comがComodoからの有効なSSL証明書を使用していることに注意してください。 少なくとも、将来的にはSSL証明書をLet'sEncryptに置き換えることができます。

Edit2:顧客ドメイン、この場合はdragonfox.netでまだ持続しているようで、まったく同じエラーが発生します。 この場合、お客様はCloudFlareを使用していますが、それがクライアントが新しいSSL証明書をインストールできないことに関連しているかどうかはわかりません。

certbot-auto more-info

最も参考になるコメント

@bmw

問題への道を教えてくれてありがとう。

サーバーはacme-v01.api.letsencrypt.orgが誰であるかを知らなかったことが判明しました。

[root<strong i="10">@helmsgate</strong> ~]# curl https://acme-v01.api.letsencrypt.org/directory
curl: (6) Could not resolve host: acme-v01.api.letsencrypt.org; Name or service not known
[root<strong i="11">@helmsgate</strong> ~]# nano /etc/resolv.conf
[root<strong i="12">@helmsgate</strong> ~]# curl https://acme-v01.api.letsencrypt.org/directory
{
  "new-authz": "https://acme-v01.api.letsencrypt.org/acme/new-authz",
  "new-cert": "https://acme-v01.api.letsencrypt.org/acme/new-cert",
  "new-reg": "https://acme-v01.api.letsencrypt.org/acme/new-reg",
  "revoke-cert": "https://acme-v01.api.letsencrypt.org/acme/revoke-cert"
}[root<strong i="13">@helmsgate</strong> ~]# ^C
[root<strong i="14">@helmsgate</strong> ~]#

編集:確かに、 nameserver 8.8.8.8/etc/resolv.confに追加するとすぐに、Let's EncryptのDNS設定が取得され、SSL証明書を発行できるようになります。

全てのコメント4件

したがって、ここでの問題は、Let's Encrypt CAがサーバーに接続できないことではなく、CertbotがLet'sEncryptに接続できないことです。 クライアントが失敗しているのは、最初にCAとの接続を確立しようとする場所です。

この問題が発生しているシステムでcurl https://acme-v01.api.letsencrypt.org/directoryを実行するとどうなりますか?

@bmw

問題への道を教えてくれてありがとう。

サーバーはacme-v01.api.letsencrypt.orgが誰であるかを知らなかったことが判明しました。

[root<strong i="10">@helmsgate</strong> ~]# curl https://acme-v01.api.letsencrypt.org/directory
curl: (6) Could not resolve host: acme-v01.api.letsencrypt.org; Name or service not known
[root<strong i="11">@helmsgate</strong> ~]# nano /etc/resolv.conf
[root<strong i="12">@helmsgate</strong> ~]# curl https://acme-v01.api.letsencrypt.org/directory
{
  "new-authz": "https://acme-v01.api.letsencrypt.org/acme/new-authz",
  "new-cert": "https://acme-v01.api.letsencrypt.org/acme/new-cert",
  "new-reg": "https://acme-v01.api.letsencrypt.org/acme/new-reg",
  "revoke-cert": "https://acme-v01.api.letsencrypt.org/acme/revoke-cert"
}[root<strong i="13">@helmsgate</strong> ~]# ^C
[root<strong i="14">@helmsgate</strong> ~]#

編集:確かに、 nameserver 8.8.8.8/etc/resolv.confに追加するとすぐに、Let's EncryptのDNS設定が取得され、SSL証明書を発行できるようになります。

お役に立てて嬉しいです! この問題は解決されましたか?

うん! これで、IWLEプラグインを取得して顧客ドメインの証明書を発行できるようになりました。 この動作をいくつかの顧客ドメインで再現しましたが、すべての場合で修正されています。

先に進み、この問題を閉じます。 道を示してくれてありがとう。 :)

このページは役に立ちましたか?
0 / 5 - 0 評価