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. crt.sh | 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: jbillings.net and kcsports.net
I ran this command:
sudo certbot -v
It produced this output:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
ssl_module is statically linked but --apache-bin is missing; not disabling session tickets.
Plugins selected: Authenticator apache, Installer apache
Please enter the domain name(s) you would like on your certificate (comma and/or
space separated) (Enter 'c' to cancel): jbillings.net kcsports.net
Requesting a certificate for jbillings.net and kcsports.net
Performing the following challenges:
http-01 challenge for jbillings.net
http-01 challenge for kcsports.net
Cleaning up challenges
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.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
My web server is (include version):
Apache 2.4.46
The operating system my web server runs on is (include version): MacOS 11 Big Sur
My hosting provider, if applicable, is:
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.16.0
vhost file
# Virtual Hosts
#
# Required modules: mod_log_config
# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
<VirtualHost *:80>
ServerAdmin jeffreybillings@mac.com
DocumentRoot "/Library/WebServer/Documents/jbillings"
ServerName jbillings.net
ServerAlias www.jbillings.net
ErrorLog "/private/var/log/apache2/jbillings.net-error_log"
CustomLog "/private/var/log/apache2/jbillings.net-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin jeffreybillings@mac.com
DocumentRoot "/Library/WebServer/Documents/kcsports"
ServerName kcsports.net
ServerAlias www.kcsports.net
ErrorLog "/private/var/log/apache2/kcspors.net-error_log"
CustomLog "/private/var/log/apache2/kcsports.net-access_log" common
</VirtualHost>
Letsencrypt log:
2021-07-05 22:56:24,797:DEBUG:certbot._internal.main:certbot version: 1.16.0
2021-07-05 22:56:24,797:DEBUG:certbot._internal.main:Location of certbot entry point: /usr/local/bin/certbot
2021-07-05 22:56:24,797:DEBUG:certbot._internal.main:Arguments: ['-v']
2021-07-05 22:56:24,798:DEBUG:certbot._internal.main:Discovered plugins: PluginsRegistry(PluginEntryPoint#apache,PluginEntryPoint#manual,PluginEntryPoint#nginx,PluginEntryPoint#null,PluginEntryPoint#standalone,PluginEntryPoint#webroot)
2021-07-05 22:56:24,842:DEBUG:certbot._internal.log:Root logging level set at 20
2021-07-05 22:56:24,843:DEBUG:certbot._internal.plugins.selection:Requested authenticator None and installer None
2021-07-05 22:56:25,037:DEBUG:certbot_apache._internal.configurator:Apache version is 2.4.46
2021-07-05 22:56:25,359:WARNING:certbot_apache._internal.configurator:ssl_module is statically linked but --apache-bin is missing; not disabling session tickets.
2021-07-05 22:56:25,360:DEBUG:certbot._internal.plugins.disco:No installation (PluginEntryPoint#nginx): Could not find a usable 'nginx' binary. Ensure nginx exists, the binary is executable, and your PATH is set correctly.
Traceback (most recent call last):
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot/_internal/plugins/disco.py", line 158, in prepare
self._initialized.prepare() # type: ignore
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot_nginx/_internal/configurator.py", line 189, in prepare
raise errors.NoInstallationError(
certbot.errors.NoInstallationError: Could not find a usable 'nginx' binary. Ensure nginx exists, the binary is executable, and your PATH is set correctly.
2021-07-05 22:56:25,361: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_darwin.DarwinConfigurator object at 0x10acc60d0>
Prep: True
2021-07-05 22:56:25,362:DEBUG:certbot._internal.plugins.selection:Selected authenticator <certbot_apache._internal.override_darwin.DarwinConfigurator object at 0x10acc60d0> and installer <certbot_apache._internal.override_darwin.DarwinConfigurator object at 0x10acc60d0>
2021-07-05 22:56:25,362:INFO:certbot._internal.plugins.selection:Plugins selected: Authenticator apache, Installer apache
2021-07-05 22:56:25,370:DEBUG:certbot._internal.main:Picked account: <Account(RegistrationResource(body=Registration(key=None, contact=(), agreement=None, status=None, terms_of_service_agreed=None, only_return_existing=None, external_account_binding=None), uri='https://acme-v02.api.letsencrypt.org/acme/acct/129481415', new_authzr_uri=None, terms_of_service=None), 56ddd5f15b7815f8ffc06f1f2d7065af, Meta(creation_dt=datetime.datetime(2021, 7, 6, 1, 15, 24, tzinfo=<UTC>), creation_host='Sysadmins-Mac-Pro.local', register_to_eff='jeffreybillings@mac.com'))>
2021-07-05 22:56:25,384:DEBUG:acme.client:Sending GET request to https://acme-v02.api.letsencrypt.org/directory.
2021-07-05 22:56:25,419:DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org:443
2021-07-05 22:56:25,596:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "GET /directory HTTP/1.1" 200 658
2021-07-05 22:56:25,597:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Tue, 06 Jul 2021 03:56:25 GMT
Content-Type: application/json
Content-Length: 658
Connection: keep-alive
Cache-Control: public, max-age=0, no-cache
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"U8PjmYFwfkY": "https://community.letsencrypt.org/t/adding-random-entries-to-the-directory/33417",
"keyChange": "https://acme-v02.api.letsencrypt.org/acme/key-change",
"meta": {
"caaIdentities": [
"letsencrypt.org"
],
"termsOfService": "https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.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",
"revokeCert": "https://acme-v02.api.letsencrypt.org/acme/revoke-cert"
}
2021-07-05 22:56:40,712:DEBUG:certbot.display.util:Notifying user: Requesting a certificate for jbillings.net and kcsports.net
2021-07-05 22:56:40,771:DEBUG:certbot.crypto_util:Generating RSA key (2048 bits): /etc/letsencrypt/keys/0014_key-certbot.pem
2021-07-05 22:56:40,774:DEBUG:certbot.crypto_util:Creating CSR: /etc/letsencrypt/csr/0014_csr-certbot.pem
2021-07-05 22:56:40,774:DEBUG:acme.client:Requesting fresh nonce
2021-07-05 22:56:40,775:DEBUG:acme.client:Sending HEAD request to https://acme-v02.api.letsencrypt.org/acme/new-nonce.
2021-07-05 22:56:40,814:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "HEAD /acme/new-nonce HTTP/1.1" 200 0
2021-07-05 22:56:40,814:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Tue, 06 Jul 2021 03:56:40 GMT
Connection: keep-alive
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Replay-Nonce: 0102QuiD1UQYLQR8EoUX0TPpSZf24Mii2p_H3WtkMYA2-p0
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
2021-07-05 22:56:40,814:DEBUG:acme.client:Storing nonce: 0102QuiD1UQYLQR8EoUX0TPpSZf24Mii2p_H3WtkMYA2-p0
2021-07-05 22:56:40,815:DEBUG:acme.client:JWS payload:
b'{\n "identifiers": [\n {\n "type": "dns",\n "value": "jbillings.net"\n },\n {\n "type": "dns",\n "value": "kcsports.net"\n }\n ]\n}'
2021-07-05 22:56:40,817:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/new-order:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMTI5NDgxNDE1IiwgIm5vbmNlIjogIjAxMDJRdWlEMVVRWUxRUjhFb1VYMFRQcFNaZjI0TWlpMnBfSDNXdGtNWUEyLXAwIiwgInVybCI6ICJodHRwczovL2FjbWUtdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9uZXctb3JkZXIifQ",
"signature": "s6Zip_oP7LTGTK5OZnUnFgfpqXPYJ_ZyNHhRlldcuNUYB6cKi7_0h_xBiubjwqFHZ17JPcoYiA_a5015AnuzNLsNDTwfYjonHqY14xQ9sC0DzGynDzSO-mZaYVmTuoxXvztRk7h1EvS7hutYK5UHzTMMOjCYKaT20odXAgxYaeuCFR6wshK08swDO6uC2lao6aNUq3AlPFDH8_qGkQLSjjquUSv_Vo_jnvy4zUrwahFpJPfVbwl6XMJddXbmF6cTtYyPzmEjapH_LOKxJHSYW1SfienYkNrBQ9SpTNzORazPloB7XdtwFSZh0M7lQTCQbH3w_5GJ72Q9058Ligd7hQ",
"payload": "ewogICJpZGVudGlmaWVycyI6IFsKICAgIHsKICAgICAgInR5cGUiOiAiZG5zIiwKICAgICAgInZhbHVlIjogImpiaWxsaW5ncy5uZXQiCiAgICB9LAogICAgewogICAgICAidHlwZSI6ICJkbnMiLAogICAgICAidmFsdWUiOiAia2NzcG9ydHMubmV0IgogICAgfQogIF0KfQ"
}
2021-07-05 22:56:40,988:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/new-order HTTP/1.1" 201 470
2021-07-05 22:56:40,989:DEBUG:acme.client:Received response:
HTTP 201
Server: nginx
Date: Tue, 06 Jul 2021 03:56:40 GMT
Content-Type: application/json
Content-Length: 470
Connection: keep-alive
Boulder-Requester: 129481415
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Location: https://acme-v02.api.letsencrypt.org/acme/order/129481415/10879446752
Replay-Nonce: 0102rxwYoXS0MCCiNR9PyOFwQ3z1v6qYhneQEB8Wv6GOYh0
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"status": "pending",
"expires": "2021-07-13T03:52:13Z",
"identifiers": [
{
"type": "dns",
"value": "jbillings.net"
},
{
"type": "dns",
"value": "kcsports.net"
}
],
"authorizations": [
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/14574850455",
"https://acme-v02.api.letsencrypt.org/acme/authz-v3/14574850459"
],
"finalize": "https://acme-v02.api.letsencrypt.org/acme/finalize/129481415/10879446752"
}
2021-07-05 22:56:40,989:DEBUG:acme.client:Storing nonce: 0102rxwYoXS0MCCiNR9PyOFwQ3z1v6qYhneQEB8Wv6GOYh0
2021-07-05 22:56:40,989:DEBUG:acme.client:JWS payload:
b''
2021-07-05 22:56:40,991:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/authz-v3/14574850455:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMTI5NDgxNDE1IiwgIm5vbmNlIjogIjAxMDJyeHdZb1hTME1DQ2lOUjlQeU9Gd1EzejF2NnFZaG5lUUVCOFd2NkdPWWgwIiwgInVybCI6ICJodHRwczovL2FjbWUtdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9hdXRoei12My8xNDU3NDg1MDQ1NSJ9",
"signature": "VeOWbsuFShFHfQt2m_YgXnZUyOy9vZObQjdN_r3vT0wDX5QqRYkPpkvlp9ZaDkqsDKjcPXFs-cD5c076W8Wo1fA218778XJSniGsMO_9FDqMzZfSo_fdI7B8FfYehQOvzVtH9JauB5hOlTBc5U9KpRHFCJ1LiCrPg7Mu9lf1GIVt3vYyigZOHoGGtN2B7PVoKphd97sDyGm1RfH_M0kqq3mvd91KqLACZK1i66Vznz-LFeP2XSEJOlzTUkddvpMAgiioX-40O34zwK9zLhZZSUltHEx7HW2bhDvIWgcp-RyW6M-4nWpBIk1vF22ldf970QSr2pfsNEgYyBkH-H_GSA",
"payload": ""
}
2021-07-05 22:56:41,075:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/authz-v3/14574850455 HTTP/1.1" 200 794
2021-07-05 22:56:41,076:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Tue, 06 Jul 2021 03:56:41 GMT
Content-Type: application/json
Content-Length: 794
Connection: keep-alive
Boulder-Requester: 129481415
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Replay-Nonce: 01023rzKRUgDwTou6xBCH533NlHoo8bSgxUr0KUzp9htDcI
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"identifier": {
"type": "dns",
"value": "jbillings.net"
},
"status": "pending",
"expires": "2021-07-13T03:52:13Z",
"challenges": [
{
"type": "http-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/14574850455/0Dz34A",
"token": "JmIlT_jWSRez30Ot6bK1uzGN_uK8NgFIIKfTsM1t568"
},
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/14574850455/wXo2dQ",
"token": "JmIlT_jWSRez30Ot6bK1uzGN_uK8NgFIIKfTsM1t568"
},
{
"type": "tls-alpn-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/14574850455/5LO2NA",
"token": "JmIlT_jWSRez30Ot6bK1uzGN_uK8NgFIIKfTsM1t568"
}
]
}
2021-07-05 22:56:41,076:DEBUG:acme.client:Storing nonce: 01023rzKRUgDwTou6xBCH533NlHoo8bSgxUr0KUzp9htDcI
2021-07-05 22:56:41,076:DEBUG:acme.client:JWS payload:
b''
2021-07-05 22:56:41,078:DEBUG:acme.client:Sending POST request to https://acme-v02.api.letsencrypt.org/acme/authz-v3/14574850459:
{
"protected": "eyJhbGciOiAiUlMyNTYiLCAia2lkIjogImh0dHBzOi8vYWNtZS12MDIuYXBpLmxldHNlbmNyeXB0Lm9yZy9hY21lL2FjY3QvMTI5NDgxNDE1IiwgIm5vbmNlIjogIjAxMDIzcnpLUlVnRHdUb3U2eEJDSDUzM05sSG9vOGJTZ3hVcjBLVXpwOWh0RGNJIiwgInVybCI6ICJodHRwczovL2FjbWUtdjAyLmFwaS5sZXRzZW5jcnlwdC5vcmcvYWNtZS9hdXRoei12My8xNDU3NDg1MDQ1OSJ9",
"signature": "TTbidS6pm_3slblGSz7HECx2rqkyepZtRDhw59veMx2E6MqZRdVOBjdDs_g8mxKdmHY2tI_D6pbVp2Qni1h78yaZgU87T-H7bZUtmCjWqg93GNgrnG9HPLi_vis9kTziVWNCqITPNPCGfngOKWyPw3qJl1IIwJDYI0o41Lw4f4p7q8fChDojBvFevD-UK2E13RZLDeoGKrGWHvQ8Xut-YmXMOy_bAVT8zJe1JJ2POHntPv0g95SjPCETRWoSJuyhvC1XcCV60JNexo4BZXuBBJ2ynLA2b7SpYwr_F1i9x1eUUH-I6U0rjPHUR3oDygqpquz64YiAV0IvUBcjQRrCIA",
"payload": ""
}
2021-07-05 22:56:41,153:DEBUG:urllib3.connectionpool:https://acme-v02.api.letsencrypt.org:443 "POST /acme/authz-v3/14574850459 HTTP/1.1" 200 793
2021-07-05 22:56:41,153:DEBUG:acme.client:Received response:
HTTP 200
Server: nginx
Date: Tue, 06 Jul 2021 03:56:41 GMT
Content-Type: application/json
Content-Length: 793
Connection: keep-alive
Boulder-Requester: 129481415
Cache-Control: public, max-age=0, no-cache
Link: <https://acme-v02.api.letsencrypt.org/directory>;rel="index"
Replay-Nonce: 0102wEX8sNv9wC7H7Wq070I_tXHHKDcdFwonhZ4Shep57oE
X-Frame-Options: DENY
Strict-Transport-Security: max-age=604800
{
"identifier": {
"type": "dns",
"value": "kcsports.net"
},
"status": "pending",
"expires": "2021-07-13T03:52:13Z",
"challenges": [
{
"type": "http-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/14574850459/aDI6ew",
"token": "YdLagC9vsnys0yGADIo3pm-v0DSaWYnxiqnWUWJsdf8"
},
{
"type": "dns-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/14574850459/BDjvUg",
"token": "YdLagC9vsnys0yGADIo3pm-v0DSaWYnxiqnWUWJsdf8"
},
{
"type": "tls-alpn-01",
"status": "pending",
"url": "https://acme-v02.api.letsencrypt.org/acme/chall-v3/14574850459/bkcACw",
"token": "YdLagC9vsnys0yGADIo3pm-v0DSaWYnxiqnWUWJsdf8"
}
]
}
2021-07-05 22:56:41,153:DEBUG:acme.client:Storing nonce: 0102wEX8sNv9wC7H7Wq070I_tXHHKDcdFwonhZ4Shep57oE
2021-07-05 22:56:41,154:INFO:certbot._internal.auth_handler:Performing the following challenges:
2021-07-05 22:56:41,154:INFO:certbot._internal.auth_handler:http-01 challenge for jbillings.net
2021-07-05 22:56:41,154:INFO:certbot._internal.auth_handler:http-01 challenge for kcsports.net
2021-07-05 22:56:41,160:DEBUG:certbot._internal.error_handler:Encountered exception:
Traceback (most recent call last):
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot/_internal/auth_handler.py", line 73, in handle_authorizations
resps = self.auth.perform(achalls)
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot_apache/_internal/configurator.py", line 2538, in perform
http_response = http_doer.perform()
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot_apache/_internal/http_01.py", line 76, in perform
self._mod_config()
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot_apache/_internal/http_01.py", line 111, in _mod_config
for vh in self._relevant_vhosts():
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot_apache/_internal/http_01.py", line 162, in _relevant_vhosts
raise errors.PluginError(
certbot.errors.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.
2021-07-05 22:56:41,160:DEBUG:certbot._internal.error_handler:Calling registered functions
2021-07-05 22:56:41,160:INFO:certbot._internal.auth_handler:Cleaning up challenges
2021-07-05 22:56:41,388:DEBUG:certbot._internal.log:Exiting abnormally:
Traceback (most recent call last):
File "/usr/local/bin/certbot", line 33, in <module>
sys.exit(load_entry_point('certbot==1.16.0', 'console_scripts', 'certbot')())
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot/main.py", line 15, in main
return internal_main.main(cli_args)
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot/_internal/main.py", line 1552, in main
return config.func(config, plugins)
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot/_internal/main.py", line 1268, in run
new_lineage = _get_and_save_cert(le_client, config, domains,
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot/_internal/main.py", line 128, in _get_and_save_cert
lineage = le_client.obtain_and_enroll_certificate(domains, certname)
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot/_internal/client.py", line 445, in obtain_and_enroll_certificate
cert, chain, key, _ = self.obtain_certificate(domains)
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot/_internal/client.py", line 375, in obtain_certificate
orderr = self._get_order_and_authorizations(csr.data, self.config.allow_subset_of_names)
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot/_internal/client.py", line 425, in _get_order_and_authorizations
authzr = self.auth_handler.handle_authorizations(orderr, self.config, best_effort)
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot/_internal/auth_handler.py", line 73, in handle_authorizations
resps = self.auth.perform(achalls)
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot_apache/_internal/configurator.py", line 2538, in perform
http_response = http_doer.perform()
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot_apache/_internal/http_01.py", line 76, in perform
self._mod_config()
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot_apache/_internal/http_01.py", line 111, in _mod_config
for vh in self._relevant_vhosts():
File "/usr/local/Cellar/certbot/1.16.0/libexec/lib/python3.9/site-packages/certbot_apache/_internal/http_01.py", line 162, in _relevant_vhosts
raise errors.PluginError(
certbot.errors.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.
2021-07-05 22:56:41,390:ERROR:certbot._internal.log: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.
I've work through your files for 2 hours trying to be a good member. But I'm lost:(