I use Let’s encrypt during the last months without issues. but today… I wanted to update it (renew) and receive this error.
An unexpected error occurred:
KeyError: 'server'
Please see the logfiles in /var/log/letsencrypt for more details.
2016-09-14 08:46:13,758:DEBUG:letsencrypt.cli:Root logging level set at 30
2016-09-14 08:46:13,760:INFO:letsencrypt.cli:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2016-09-14 08:46:13,761:DEBUG:letsencrypt.cli:letsencrypt version: 0.4.1
2016-09-14 08:46:13,761:DEBUG:letsencrypt.cli:Arguments: []
2016-09-14 08:46:13,762:DEBUG:letsencrypt.cli:Discovered plugins: PluginsRegistry(PluginEntryPoint#apache,PluginEntryPoint#webroot,PluginEntryPoint#null,PluginEntryPoint#manual,PluginEntryPoint#standalone)
2016-09-14 08:46:13,770:DEBUG:letsencrypt.cli:Requested authenticator None and installer None
2016-09-14 08:46:14,529:DEBUG:letsencrypt.display.ops:Single candidate plugin: * apache
Description: Apache Web Server - Alpha
Interfaces: IAuthenticator, IInstaller, IPlugin
Entry point: apache = letsencrypt_apache.configurator:ApacheConfigurator
Initialized: <letsencrypt_apache.configurator.ApacheConfigurator object at 0x7fdf178b5ad0>
Prep: True
2016-09-14 08:46:14,531:DEBUG:letsencrypt.cli:Selected authenticator <letsencrypt_apache.configurator.ApacheConfigurator object at 0x7fdf178b5ad0> and installer <letsencrypt_apache.configurator.ApacheConfigurator object at 0x7fdf178b5ad0>
2016-09-14 08:46:15,946:DEBUG:letsencrypt.cli:Picked account: <Account(17c2f9ed16537189e3a83f9cc4bec51e)>
2016-09-14 08:46:15,950:DEBUG:root:Sending GET request to https://acme-v01.api.letsencrypt.org/directory. args: (), kwargs: {}
2016-09-14 08:46:15,960:INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): acme-v01.api.letsencrypt.org
2016-09-14 08:46:16,240:DEBUG:requests.packages.urllib3.connectionpool:"GET /directory HTTP/1.1" 200 280
2016-09-14 08:46:16,244:DEBUG:root:Received <Response [200]>. Headers: {'Content-Length': '280', 'Expires': 'Wed, 14 Sep 2016 08:46:16 GMT', 'Boulder-Request-Id': 'M356x_hSfCemin2zGpjiSRTSb6JZ7aSyXLC3mXPgFzo', 'Strict-Transport-Security': 'max-age=604800', 'Server': 'nginx', 'Connection': 'keep-alive', 'Pragma': 'no-cache', 'Cache-Control': 'max-age=0, no-cache, no-store', 'Date': 'Wed, 14 Sep 2016 08:46:16 GMT', 'X-Frame-Options': 'DENY', 'Content-Type': 'application/json', 'Replay-Nonce': '2rhkmV1SgZ1fO4GqMiwD0sUF2MZ-PeI5BcsdbSSk4RU'}. Content: '{\n "new-authz": "https://acme-v01.api.letsencrypt.org/acme/new-authz",\n "new-cert": "https://acme-v01.api.letsencrypt.org/acme/new-cert",\n "new-reg": "https://acme-v01.api.letsencrypt.org/acme/new-reg",\n "revoke-cert": "https://acme-v01.api.letsencrypt.org/acme/revoke-cert"\n}'
2016-09-14 08:46:16,244:DEBUG:acme.client:Received response <Response [200]> (headers: {'Content-Length': '280', 'Expires': 'Wed, 14 Sep 2016 08:46:16 GMT', 'Boulder-Request-Id': 'M356x_hSfCemin2zGpjiSRTSb6JZ7aSyXLC3mXPgFzo', 'Strict-Transport-Security': 'max-age=604800', 'Server': 'nginx', 'Connection': 'keep-alive', 'Pragma': 'no-cache', 'Cache-Control': 'max-age=0, no-cache, no-store', 'Date': 'Wed, 14 Sep 2016 08:46:16 GMT', 'X-Frame-Options': 'DENY', 'Content-Type': 'application/json', 'Replay-Nonce': '2rhkmV1SgZ1fO4GqMiwD0sUF2MZ-PeI5BcsdbSSk4RU'}): '{\n "new-authz": "https://acme-v01.api.letsencrypt.org/acme/new-authz",\n "new-cert": "https://acme-v01.api.letsencrypt.org/acme/new-cert",\n "new-reg": "https://acme-v01.api.letsencrypt.org/acme/new-reg",\n "revoke-cert": "https://acme-v01.api.letsencrypt.org/acme/revoke-cert"\n}'
2016-09-14 08:46:16,252:DEBUG:parsedatetime:parse (top of loop): [30 days][]
2016-09-14 08:46:16,265:DEBUG:parsedatetime:CRE_UNITS matched
2016-09-14 08:46:16,266:DEBUG:parsedatetime:parse (bottom) [][30 days][][]
2016-09-14 08:46:16,266:DEBUG:parsedatetime:weekday False, dateStd False, dateStr False, time False, timeStr False, meridian False
2016-09-14 08:46:16,266:DEBUG:parsedatetime:dayStr False, modifier False, modifier2 False, units True, qunits False
2016-09-14 08:46:16,266:DEBUG:parsedatetime:_evalString(30 days, time.struct_time(tm_year=2016, tm_mon=9, tm_mday=14, tm_hour=8, tm_min=46, tm_sec=16, tm_wday=2, tm_yday=258, tm_isdst=0))
2016-09-14 08:46:16,266:DEBUG:parsedatetime:_buildTime: [30 ][][days]
2016-09-14 08:46:16,266:DEBUG:parsedatetime:units days --> realunit days
2016-09-14 08:46:16,267:DEBUG:parsedatetime:return
2016-09-14 08:46:16,267:DEBUG:letsencrypt.storage:Should renew, less than 30 days before certificate expiry 2016-09-24 18:58:00 UTC.
2016-09-14 08:46:16,267:INFO:letsencrypt.cli:Cert is due for renewal, auto-renewing...
2016-09-14 08:46:16,268:DEBUG:letsencrypt.cli:Exiting abnormally:
Traceback (most recent call last):
File "/usr/bin/letsencrypt", line 9, in <module>
load_entry_point('letsencrypt==0.4.1', 'console_scripts', 'letsencrypt')()
File "/usr/lib/python2.7/dist-packages/letsencrypt/cli.py", line 1986, in main
return config.func(config, plugins)
File "/usr/lib/python2.7/dist-packages/letsencrypt/cli.py", line 662, in run
lineage, action = _auth_from_domains(le_client, config, domains)
File "/usr/lib/python2.7/dist-packages/letsencrypt/cli.py", line 453, in _auth_from_domains
original_server = lineage.configuration["renewalparams"]["server"]
File "/usr/lib/python2.7/dist-packages/configobj.py", line 554, in __getitem__
val = dict.__getitem__(self, key)
KeyError: 'server'