Renewal failure, "sslv3 alert bad record mac"

My domain is:

I ran this command:
certbot renew

It produced this output:
Saving debug log to /var/log/letsencrypt/letsencrypt.log

Processing /usr/local/etc/letsencrypt/renewal/

Cert is due for renewal, auto-renewing…
Plugins selected: Authenticator standalone, Installer None
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for
http-01 challenge for
http-01 challenge for
http-01 challenge for
http-01 challenge for
Waiting for verification…
Cleaning up challenges
Attempting to renew cert ( from /usr/local/etc/letsencrypt/renewal/ produced an unexpected error: [(‘SSL routines’, ‘ssl3_read_bytes’, ‘sslv3 alert bad record mac’)]. Skipping.
All renewal attempts failed. The following certs could not be renewed:
/usr/local/etc/letsencrypt/live/ (failure)

All renewal attempts failed. The following certs could not be renewed:
/usr/local/etc/letsencrypt/live/ (failure)

1 renew failure(s), 0 parse failure(s)

My web server is (include version):

The operating system my web server runs on is (include version):
freebsd 11.2-RELEASE-p9

My hosting provider, if applicable, is:

I can login to a root shell on my machine (yes or no, or I don’t know):

I’m using a control panel to manage my site (no, or provide the name and version of the control panel):

The version of my client is (e.g. output of certbot --version or certbot-auto --version if you’re using Certbot):

The debug log shows the following error:
The debug log shows the following exception:

2020-03-11 14:48:04,062:DEBUG:certbot.error_handler:Encountered exception:
Traceback (most recent call last):
File “/usr/local/lib/python2.7/site-packages/certbot/”, line 82, in handle_authorizations
self._respond(aauthzrs, resp, best_effort)
File “/usr/local/lib/python2.7/site-packages/certbot/”, line 165, in _respond
self._send_responses(aauthzrs, resp, chall_update)
File “/usr/local/lib/python2.7/site-packages/certbot/”, line 198, in _send_responses
self.acme.answer_challenge(achall.challb, resp)
File “/usr/local/lib/python2.7/site-packages/acme/”, line 158, in answer_challenge
response = self._post(challb.uri, response)
File “/usr/local/lib/python2.7/site-packages/acme/”, line 95, in _post
return*args, **kwargs)
File “/usr/local/lib/python2.7/site-packages/acme/”, line 1185, in post
return self._post_once(*args, **kwargs)
File “/usr/local/lib/python2.7/site-packages/acme/”, line 1201, in _post_once
response = self._send_request(‘POST’, url, data=data, **kwargs)
File “/usr/local/lib/python2.7/site-packages/acme/”, line 1101, in _send_request
response = self.session.request(method, url, *args, **kwargs)
File “/usr/local/lib/python2.7/site-packages/requests/”, line 533, in request
resp = self.send(prep, **send_kwargs)
File “/usr/local/lib/python2.7/site-packages/requests/”, line 646, in send
r = adapter.send(request, **kwargs)
File “/usr/local/lib/python2.7/site-packages/requests/”, line 449, in send
File “/usr/local/lib/python2.7/site-packages/urllib3/”, line 601, in urlopen
File “/usr/local/lib/python2.7/site-packages/urllib3/”, line 380, in _make_request
httplib_response = conn.getresponse(buffering=True)
File “/usr/local/lib/python2.7/”, line 1121, in getresponse
File “/usr/local/lib/python2.7/”, line 438, in begin
version, status, reason = self._read_status()
File “/usr/local/lib/python2.7/”, line 394, in _read_status
line = self.fp.readline(_MAXLINE + 1)
File “/usr/local/lib/python2.7/”, line 480, in readline
data = self._sock.recv(self._rbufsize)
File “/usr/local/lib/python2.7/site-packages/urllib3/contrib/”, line 274, in recv
return self.recv(*args, **kwargs)
File “/usr/local/lib/python2.7/site-packages/urllib3/contrib/”, line 258, in recv
data = self.connection.recv(*args, **kwargs)
File “/usr/local/lib/python2.7/site-packages/OpenSSL/”, line 1783, in recv
self._raise_ssl_error(self._ssl, result)
File “/usr/local/lib/python2.7/site-packages/OpenSSL/”, line 1639, in _raise_ssl_error
File “/usr/local/lib/python2.7/site-packages/OpenSSL/”, line 54, in exception_from_error_queue
raise exception_type(errors)

I’ve been informed python 2.7 is EOL, but that doesn’t seem like it should
be the problem. I’m planning on upgrading the os and apps but would like
to renew this cert if possible before that as it expires in 2 days.

Apparently python 3.7 is required. I deleted the py27-certbot package and installed py37-certbot and the certs renewed normally.

Note: I did upgrade the os to 11.3 prior to doing this.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.