やあ、
いくつかの背景:
そのため、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証明書をインストールできないことに関連しているかどうかはわかりません。
したがって、ここでの問題は、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プラグインを取得して顧客ドメインの証明書を発行できるようになりました。 この動作をいくつかの顧客ドメインで再現しましたが、すべての場合で修正されています。
先に進み、この問題を閉じます。 道を示してくれてありがとう。 :)
最も参考になるコメント
@bmw 、
問題への道を教えてくれてありがとう。
サーバーは
acme-v01.api.letsencrypt.org
が誰であるかを知らなかったことが判明しました。編集:確かに、
nameserver 8.8.8.8
を/etc/resolv.conf
に追加するとすぐに、Let's EncryptのDNS設定が取得され、SSL証明書を発行できるようになります。