Renewal not avaiable

Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. https://crt.sh/?q=example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.

My domain is: bdnetbreeze.blackdragonnetworks.com

I ran this command: certbot renew --apache

It produced this output:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/bdnetbreeze.blackdragonnetworks.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator apache, Installer apache
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Renewing an existing certificate for bdnetbreeze.blackdragonnetworks.com
Performing the following challenges:
http-01 challenge for bdnetbreeze.blackdragonnetworks.com
Cleaning up challenges
Failed to renew certificate bdnetbreeze.blackdragonnetworks.com with error: Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
All renewals failed. The following certificates could not be renewed:
  /etc/letsencrypt/live/bdnetbreeze.blackdragonnetworks.com/fullchain.pem (failure)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 renew failure(s), 0 parse failure(s)

My web server is (include version): apache

The operating system my web server runs on is (include version): Centos7

My hosting provider, if applicable, is: Vultr

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

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): certbot 1.11.0

Log Output

2023-06-27 16:57:34,576:DEBUG:certbot._internal.main:certbot version: 1.11.0
2023-06-27 16:57:34,577:DEBUG:certbot._internal.main:Location of certbot entry point: /usr/bin/certbot
2023-06-27 16:57:34,577:DEBUG:certbot._internal.main:Arguments: ['--apache']
2023-06-27 16:57:34,577:DEBUG:certbot._internal.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#apache,PluginEntryPoint#manual,PluginEntryPoint#nginx,PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2023-06-27 16:57:34,592:DEBUG:certbot._internal.log:Root logging level set at 20
2023-06-27 16:57:34,592:INFO:certbot._internal.log:Saving debug log to /var/log/letsencrypt/letsencrypt.log
2023-06-27 16:57:34,594:DEBUG:certbot.display.util:Notifying user: Processing /etc/letsencrypt/renewal/bdnetbreeze.blackdragonnetworks.com.conf
2023-06-27 16:57:34,607:DEBUG:certbot._internal.plugins.selection:Requested authenticator apache and installer apache
2023-06-27 16:57:34,607:DEBUG:certbot._internal.cli:Var authenticator=apache (set by user).
2023-06-27 16:57:34,663:DEBUG:certbot.ocsp:Querying OCSP for /etc/letsencrypt/archive/bdnetbreeze.blackdragonnetworks.com/cert15.pem
2023-06-27 16:57:34,663:DEBUG:certbot.ocsp:openssl ocsp -no_nonce -issuer /etc/letsencrypt/archive/bdnetbreeze.blackdragonnetworks.com/chain15.pem -cert /etc/letsencrypt/archive/bdnetbreeze.blackdragonnetworks.com/cert15.pem -CAfile /etc/letsencrypt/archive/bdnetbreeze.blackdragonnetworks.com/chain15.pem -verify_other /etc/letsencrypt/archive/bdnetbreeze.blackdragonnetworks.com/chain15.pem -trust_other -timeout 10 -header Host r3.o.lencr.org -url http://r3.o.lencr.org
2023-06-27 16:57:34,682:DEBUG:certbot._internal.storage:Should renew, less than 30 days before certificate expiry 2023-07-04 20:10:35 UTC.
2023-06-27 16:57:34,682:INFO:certbot._internal.renewal:Cert is due for renewal, auto-renewing...
2023-06-27 16:57:34,683:DEBUG:certbot._internal.plugins.selection:Requested authenticator apache and installer apache
2023-06-27 16:57:34,786:DEBUG:certbot_apache._internal.configurator:Apache version is 2.4.6
2023-06-27 16:57:35,105:DEBUG:certbot._internal.plugins.selection:Single candidate plugin: * apache
Description: Apache Web Server plugin
Interfaces: IAuthenticator, IInstaller, IPlugin
Entry point: apache = certbot_apache._internal.entrypoint:ENTRYPOINT
Initialized: <certbot_apache._internal.override_centos.CentOSConfigurator object at 0x7f0f1f625950>
Prep: True
2023-06-27 16:57:35,106:DEBUG:certbot._internal.plugins.selection:Single candidate plugin: * apache
Description: Apache Web Server plugin
Interfaces: IAuthenticator, IInstaller, IPlugin
Entry point: apache = certbot_apache._internal.entrypoint:ENTRYPOINT
Initialized: <certbot_apache._internal.override_centos.CentOSConfigurator object at 0x7f0f1f625950>
Prep: True
2023-06-27 16:57:35,106:DEBUG:certbot._internal.plugins.selection:Selected authenticator <certbot_apache._internal.override_centos.CentOSConfigurator object at 0x7f0f1f625950> and installer <certbot_apache._internal.override_centos.CentOSConfigurator object at 0x7f0f1f625950>
2023-06-27 16:57:35,107:INFO:certbot._internal.plugins.selection:Plugins selected: Authenticator apache, Installer apache
2023-06-27 16:57:35,109:DEBUG:certbot._internal.main:Picked account: <Account(RegistrationResource(body=Registration(status=None, terms_of_service_agreed=None, agreement=None, only_return_existing=None, contact=(), key=None, external_account_binding=None), uri=u'https://acme-v02.api.letsencrypt.org/acme/acct/105472978', new_authzr_uri=None, terms_of_service=None), 73f5f7d43c9116eea6f3a761ed7e7155, Meta(creation_host=u'bdnetbreeze', register_to_eff=None, creation_dt=datetime.datetime(2020, 12, 7, 23, 12, 27, tzinfo=<UTC>)))>
2023-06-27 16:57:35,111:DEBUG:acme.client:Sending GET request to https://acme-v02.api.letsencrypt.org/directory.
2023-06-27 16:57:35,118:INFO:urllib3.connectionpool:Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
2023-06-27 16:57:35,264:DEBUG:urllib3.connectionpool:"GET /directory HTTP/1.1" 200 752
2023-06-27 16:57:35,264:DEBUG:acme.client:Received response:
HTTP 200
content-length: 752
strict-transport-security: max-age=604800
server: nginx
connection: keep-alive
cache-control: public, max-age=0, no-cache
date: Tue, 27 Jun 2023 21:57:35 GMT
x-frame-options: DENY
content-type: application/json

{
  "keyChange": "https://acme-v02.api.letsencrypt.org/acme/key-change",
  "meta": {
    "caaIdentities": [
      "letsencrypt.org"
    ],
    "termsOfService": "https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf",
    "website": "https://letsencrypt.org"
  },
  "newAccount": "https://acme-v02.api.letsencrypt.org/acme/new-acct",
  "newNonce": "https://acme-v02.api.letsencrypt.org/acme/new-nonce",
  "newOrder": "https://acme-v02.api.letsencrypt.org/acme/new-order",
  "renewalInfo": "https://acme-v02.api.letsencrypt.org/draft-ietf-acme-ari-01/renewalInfo/",
  "revokeCert": "https://acme-v02.api.letsencrypt.org/acme/revoke-cert",
  "xZlWY5_Ba4I": "https://community.letsencrypt.org/t/adding-random-entries-to-the-directory/33417"
}
2023-06-27 16:57:35,266:DEBUG:certbot.display.util:Notifying user: Renewing an existing certificate for bdnetbreeze.blackdragonnetworks.com
2023-06-27 16:57:35,383:DEBUG:certbot.crypto_util:Generating RSA key (2048 bits): /etc/letsencrypt/keys/0048_key-certbot.pem
2023-06-27 16:57:35,385:DEBUG:certbot.crypto_util:Creating CSR: /etc/letsencrypt/csr/0048_csr-certbot.pem
2023-06-27 16:57:35,385:DEBUG:acme.client:Requesting fresh nonce
2023-06-27 16:57:35,385:DEBUG:acme.client:Sending HEAD request to https://acme-v02.api.letsencrypt.org/acme/new-nonce.
2023-06-27 16:57:35,421:DEBUG:urllib3.connectionpool:"HEAD /acme/new-nonce HTTP/1.1" 200 0
2023-06-27 16:57:35,422:DEBUG:acme.client:Received response:
HTTP 200
strict-transport-security: max-age=604800
server: nginx
connection: keep-alive
link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
cache-control: public, max-age=0, no-cache
date: Tue, 27 Jun 2023 21:57:35 GMT
x-frame-options: DENY
replay-nonce: 853FinbfsyW01H5tyzek7A5dwFd8ts_5kvKBG1kgYX11E74


2023-06-27 16:57:35,422:DEBUG:acme.client:Storing nonce: 853FinbfsyW01H5tyzek7A5dwFd8ts_5kvKBG1kgYX11E74
2023-06-27 16:57:35,423:DEBUG:acme.client:JWS payload:
{
  "identifiers": [
    {
      "type": "dns",
      "value": "bdnetbreeze.blackdragonnetworks.com"
    }
  ]
}
2023-06-27 16:57:35,425:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/new-order:
{
  "protected": "eyJub25jZSI6ICI4NTNGaW5iZnN5VzAxSDV0eXplazdBNWR3RmQ4dHNfNWt2S0JHMWtnWVgxMUU3NCIsICJ1cmwiOiAiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvbmV3LW9yZGVyIiwgImtpZCI6ICJodHRwczovL2FjbWUtdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9hY2N0LzEwNTQ3Mjk3OCIsICJhbGciOiAiUlMyNTYifQ",
  "payload": "ewogICJpZGVudGlmaWVycyI6IFsKICAgIHsKICAgICAgInR5cGUiOiAiZG5zIiwgCiAgICAgICJ2YWx1ZSI6ICJiZG5ldGJyZWV6ZS5ibGFja2RyYWdvbm5ldHdvcmtzLmNvbSIKICAgIH0KICBdCn0",
  "signature": "093dsL9WtsaAkWbYlkbqM_IuH6HPJxiYbxNp-I8-Mk2boo4bzVMARvbdIvbz3wfPn0RUq8P8hPv2dkJpZptVpefKrD1S98ghANLK39U5xQP6teVNhcyE7D3D5ShKtdNjTTHzPVaaf3XIGYUBxAB3iudl74EgE5sNllEKRIo3xnEQqXelzUrmU1I9Uo6VnCLTpOZO7nWf7eKbxLG4F5oAUC0vjNm23izYkymGkJUce62690Qj8xUjcirYJ_vfJX7xwz_W0T5wOihRI24uYSWeVNJWYhOatxut2xU3AsK86JNjqCIL3LyWepugAp9rUji_VLLfHfmCR_BQhWUpv0ABTw"
}
2023-06-27 16:57:35,487:DEBUG:urllib3.connectionpool:"POST /acme/new-order HTTP/1.1" 201 360
2023-06-27 16:57:35,488:DEBUG:acme.client:Received response:
HTTP 201
content-length: 360
cache-control: public, max-age=0, no-cache
strict-transport-security: max-age=604800
server: nginx
connection: keep-alive
link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
location: https://acme-v02.api.letsencrypt.org/acme/order/105472978/191344407107
boulder-requester: 105472978
date: Tue, 27 Jun 2023 21:57:35 GMT
x-frame-options: DENY
content-type: application/json
replay-nonce: 853FqBj-bsMEiBeVBirVOpvi-OyHsgbVKQHHxVXeWbo7vkg

{
  "status": "pending",
  "expires": "2023-07-04T21:43:44Z",
  "identifiers": [
    {
      "type": "dns",
      "value": "bdnetbreeze.blackdragonnetworks.com"
    }
  ],
  "authorizations": [
    "https://acme-v02.api.letsencrypt.org/acme/authz-v3/240601190477"
  ],
  "finalize": "https://acme-v02.api.letsencrypt.org/acme/finalize/105472978/191344407107"
}
2023-06-27 16:57:35,488:DEBUG:acme.client:Storing nonce: 853FqBj-bsMEiBeVBirVOpvi-OyHsgbVKQHHxVXeWbo7vkg
2023-06-27 16:57:35,488:DEBUG:acme.client:JWS payload:

2023-06-27 16:57:35,490:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/authz-v3/240601190477:
{
  "protected": "eyJub25jZSI6ICI4NTNGcUJqLWJzTUVpQmVWQmlyVk9wdmktT3lIc2diVktRSEh4VlhlV2JvN3ZrZyIsICJ1cmwiOiAiaHR0cHM6Ly9hY21lLXYwMi5hcGkubGV0c2VuY3J5cHQub3JnL2FjbWUvYXV0aHotdjMvMjQwNjAxMTkwNDc3IiwgImtpZCI6ICJodHRwczovL2FjbWUtdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9hY2N0LzEwNTQ3Mjk3OCIsICJhbGciOiAiUlMyNTYifQ",
  "payload": "",
  "signature": "1p6EVcF66klAUtYa1ce_qYaIJABSoQrWFDW73SNpU6IUXXQavfCGZPyKrBTsDRBQKkCuGsbBCAZToT7Ic4biAGtHtrhRZikpLIMaccIzIagkJu97ez1pQaGdtMQ3iijNuRMev2rr8b2x266PtKXv7IGAP9O6GW2LHFfiKku-tRexzjUt7E6PoYWJcNGz2g18TaXyxkCS_XqxqqgU7pr379H4AkgHgQVmsAPOVNOIvIA2N3G5HA5b5bV16TvTC2uJRgQcFn312r41-ELQVIZ798dJH-sdoZ9X7rDu8vAaXWWbD4zNSS4xjfkiu9y9gzwpafjLTzNNGJLVBXFpCsh04w"
}
2023-06-27 16:57:35,529:DEBUG:urllib3.connectionpool:"POST /acme/authz-v3/240601190477 HTTP/1.1" 200 819
2023-06-27 16:57:35,530:DEBUG:acme.client:Received response:
HTTP 200
content-length: 819
cache-control: public, max-age=0, no-cache
strict-transport-security: max-age=604800
server: nginx
connection: keep-alive
link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
boulder-requester: 105472978
date: Tue, 27 Jun 2023 21:57:35 GMT
x-frame-options: DENY
content-type: application/json
replay-nonce: 20F6RyI_Oswmz1nx60DUGRahrU7OTddGHP2knSGVoqH_cbI

{
  "identifier": {
    "type": "dns",
    "value": "bdnetbreeze.blackdragonnetworks.com"
  },
  "status": "pending",
  "expires": "2023-07-04T21:43:44Z",
  "challenges": [
    {
      "type": "http-01",
      "status": "pending",
      "url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/240601190477/tGirWA",
      "token": "CbGxSLeYDY1km4VDzYpspk8Lzt10X_aKAxwNYH8SLX4"
    },
    {
      "type": "dns-01",
      "status": "pending",
      "url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/240601190477/5ScX_Q",
      "token": "CbGxSLeYDY1km4VDzYpspk8Lzt10X_aKAxwNYH8SLX4"
    },
    {
      "type": "tls-alpn-01",
      "status": "pending",
      "url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/240601190477/-mGhsQ",
      "token": "CbGxSLeYDY1km4VDzYpspk8Lzt10X_aKAxwNYH8SLX4"
    }
  ]
}
2023-06-27 16:57:35,530:DEBUG:acme.client:Storing nonce: 20F6RyI_Oswmz1nx60DUGRahrU7OTddGHP2knSGVoqH_cbI
2023-06-27 16:57:35,531:INFO:certbot._internal.auth_handler:Performing the following challenges:
2023-06-27 16:57:35,531:INFO:certbot._internal.auth_handler:http-01 challenge for bdnetbreeze.blackdragonnetworks.com
2023-06-27 16:57:35,562:DEBUG:certbot._internal.error_handler:Encountered exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/certbot/_internal/auth_handler.py", line 70, in handle_authorizations
    resps = self.auth.perform(achalls)
  File "/usr/lib/python2.7/site-packages/certbot_apache/_internal/configurator.py", line 2498, in perform
    http_response = http_doer.perform()
  File "/usr/lib/python2.7/site-packages/certbot_apache/_internal/http_01.py", line 76, in perform
    self._mod_config()
  File "/usr/lib/python2.7/site-packages/certbot_apache/_internal/http_01.py", line 111, in _mod_config
    for vh in self._relevant_vhosts():
  File "/usr/lib/python2.7/site-packages/certbot_apache/_internal/http_01.py", line 166, in _relevant_vhosts
    " {0}.".format(http01_port))
PluginError: Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.

2023-06-27 16:57:35,562:DEBUG:certbot._internal.error_handler:Calling registered functions
2023-06-27 16:57:35,563:INFO:certbot._internal.auth_handler:Cleaning up challenges
2023-06-27 16:57:35,816:ERROR:certbot._internal.renewal:Failed to renew certificate bdnetbreeze.blackdragonnetworks.com with error: Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.
2023-06-27 16:57:35,818:DEBUG:certbot._internal.renewal:Traceback was:
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/certbot/_internal/renewal.py", line 471, in handle_renewal_request
    main.renew_cert(lineage_config, plugins, renewal_candidate)
  File "/usr/lib/python2.7/site-packages/certbot/_internal/main.py", line 1235, in renew_cert
    renewed_lineage = _get_and_save_cert(le_client, config, lineage=lineage)
  File "/usr/lib/python2.7/site-packages/certbot/_internal/main.py", line 124, in _get_and_save_cert
    renewal.renew_cert(config, domains, le_client, lineage)
  File "/usr/lib/python2.7/site-packages/certbot/_internal/renewal.py", line 331, in renew_cert
    new_cert, new_chain, new_key, _ = le_client.obtain_certificate(domains, new_key)
  File "/usr/lib/python2.7/site-packages/certbot/_internal/client.py", line 374, in obtain_certificate
    orderr = self._get_order_and_authorizations(csr.data, self.config.allow_subset_of_names)
  File "/usr/lib/python2.7/site-packages/certbot/_internal/client.py", line 421, in _get_order_and_authorizations
    authzr = self.auth_handler.handle_authorizations(orderr, best_effort)
  File "/usr/lib/python2.7/site-packages/certbot/_internal/auth_handler.py", line 70, in handle_authorizations
    resps = self.auth.perform(achalls)
  File "/usr/lib/python2.7/site-packages/certbot_apache/_internal/configurator.py", line 2498, in perform
    http_response = http_doer.perform()
  File "/usr/lib/python2.7/site-packages/certbot_apache/_internal/http_01.py", line 76, in perform
    self._mod_config()
  File "/usr/lib/python2.7/site-packages/certbot_apache/_internal/http_01.py", line 111, in _mod_config
    for vh in self._relevant_vhosts():
  File "/usr/lib/python2.7/site-packages/certbot_apache/_internal/http_01.py", line 166, in _relevant_vhosts
    " {0}.".format(http01_port))
PluginError: Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.

2023-06-27 16:57:35,818:DEBUG:certbot.display.util:Notifying user:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2023-06-27 16:57:35,818:ERROR:certbot._internal.renewal:All renewals failed. The following certificates could not be renewed:
2023-06-27 16:57:35,818:ERROR:certbot._internal.renewal:  /etc/letsencrypt/live/bdnetbreeze.blackdragonnetworks.com/fullchain.pem (failure)
2023-06-27 16:57:35,818:DEBUG:certbot.display.util:Notifying user: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2023-06-27 16:57:35,821:DEBUG:certbot._internal.log:Exiting abnormally:
Traceback (most recent call last):
  File "/usr/bin/certbot", line 9, in <module>
    load_entry_point('certbot==1.11.0', 'console_scripts', 'certbot')()
  File "/usr/lib/python2.7/site-packages/certbot/main.py", line 15, in main
    return internal_main.main(cli_args)
  File "/usr/lib/python2.7/site-packages/certbot/_internal/main.py", line 1421, in main
    return config.func(config, plugins)
  File "/usr/lib/python2.7/site-packages/certbot/_internal/main.py", line 1318, in renew
    renewal.handle_renewal_request(config)
  File "/usr/lib/python2.7/site-packages/certbot/_internal/renewal.py", line 497, in handle_renewal_request
    len(renew_failures), len(parse_failures)))
Error: 1 renew failure(s), 0 parse failure(s)
2023-06-27 16:57:35,822:ERROR:certbot._internal.log:1 renew failure(s), 0 parse failure(s)

The problem and solution are here. What's the output of:

sudo apachectl -t -D DUMP_VHOSTS
5 Likes

[root@bdnetbreeze /]# sudo apachectl -t -D DUMP_VHOSTS
Passing arguments to httpd using apachectl is no longer supported.
You can only start/stop/restart httpd using this script.
If you want to pass extra arguments to httpd, edit the
/etc/sysconfig/httpd config file.
VirtualHost configuration:
*:443 144.202.76.212 (/etc/httpd/conf.d/ssl.conf:56)

My server is now not available.

[root@bdnetbreeze /]# sudo apachectl -t -D DUMP_VHOSTS
Passing arguments to httpd using apachectl is no longer supported.
You can only start/stop/restart httpd using this script.
If you want to pass extra arguments to httpd, edit the
/etc/sysconfig/httpd config file.
VirtualHost configuration:
*:443 144.202.76.212 (/etc/httpd/conf.d/ssl.conf:56)

Found the following certs:
Certificate Name: bdnetbreeze.blackdragonnetworks.com
Serial Number: 489bf8d08a16b91eff831f6fe6b23559ecb
Key Type: RSA
Domains: bdnetbreeze.blackdragonnetworks.com
Expiry Date: 2023-07-04 20:10:35+00:00 (INVALID: EXPIRED)
Certificate Path: /etc/letsencrypt/live/bdnetbreeze.blackdragonnetworks.com/fullchain.pem
Private Key Path: /etc/letsencrypt/live/bdnetbreeze.blackdragonnetworks.com/privkey.pem


What happened to the vhost for port 80?

3 Likes

I never had a http server on port 80. how do I create a vhost on port 80. How do I renew an expired certificate and how do I set the auto renewal correctly for my system. This happened last year as well.

You must have had one.

Previously:

Review Apache documentation.

The simplest is to do the same thing that you did previously [again].

Certbot should have already set that in motion, in either:

  • cron job
  • systemd-timer
3 Likes

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