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.
It produced this output: The selected vhost would conflict with other HTTPS VirtualHosts within Apache. Please select another vhost or add ServerNames to your configuration.
VirtualHost not able to be selected.
My web server is (include version): Apache2
The operating system my web server runs on is (include version): Ubuntu 20.04
Hm, interesting. I'm seeing two remarkable things in your configuration:
You're using port 81 for the pdxwater.org hostname, which is probably why certbot can't figure out the VHosts properly. Why are you running it on port 81 and not on port 80?
Your port 80 and 81 virtualhosts (matthewalbertcole.com resp. pdxwater.org) have a slash (/) behind the hostname? That's odd as a slash is not part of a hostname.. Why are those slashes there?
I tried port 81 as a fix to the error, but it didn't solve it. I thought maybe the port being already used by the first site was causing the conflict. I'll remove the slashes too. I saw that on a previous config for another server of mine, so I inserted those for continuity.
It might also be necessary to add the www hostname as a ServerAlias directive in pdxwater.org.conf.
Although it seems that wasn't necessary for matthewalbertcole.com it seems. That said I think it's "best" to have subdomains which behave the same as the "apex domain" to be aliasses. That would look like this in an apachectl -S output:
port 80 namevhost example.com (/etc/apache2/vhosts.d/vhosts/example.com.conf:1)
alias www.example.com
VirtualHost configuration:
*:443 is a NameVirtualHost
default server matthewalbertcole.com (/etc/apache2/sites-enabled/matthewalbertcole.com-le-ssl.conf:2)
port 443 namevhost matthewalbertcole.com (/etc/apache2/sites-enabled/matthewalbertcole.com-le-ssl.conf:2)
alias www.matthewalbertcole.com
*:80 is a NameVirtualHost
default server matthewalbertcole.com (/etc/apache2/sites-enabled/matthewalbertcole.com.conf:1)
port 80 namevhost matthewalbertcole.com (/etc/apache2/sites-enabled/matthewalbertcole.com.conf:1)
alias www.matthewalbertcole.com
port 80 namevhost pdxwater.org (/etc/apache2/sites-enabled/pdxwater.org.conf:1)
alias www.pdxwater.org
(Personally, I have the preference of using the apex domain as the main virtualhost name and having the www subdomain as an alias.)
That looks lovely! Although you still have two<VirtualHost *:443> sections for matthewalbertcole.com and www.matthewalbertcole.com in stead of a single section with ServerName and ServerAlias. The same goes for pdxwater.org and www.pdxwater.org, although those virtualhosts should have been generated by certbot automatically.. Not sure why certbot would have decided to make a single port 80 virtualhost with ServerName and ServerAlias into two separate VirtualHost sections..
But this shouldn't impair the functionality of both.
After you got HTTPS working on port 443, the only function of the *:80 virtualhosts is to redirect from HTTP (port 80) to HTTPS (port 443), so indeed there's no need for thsoe ProxyPass directives. By commenting them out, they have been disabled, as they should be for HTTP (port 80).
I'm guessing those ProxyPass directives are functional and they are active on the HTTPS virtualhost (no commenting character in front of them), so that seems to be good Assuming you actually want to have that ProxyPass
I do see a HTTP 503 Service Unavailable when I connect to your site, so not sure if there's anything active on port 8080 on your server? Do you know why you have those ProxyPass directives set up in the first place? Maybe your pdxwater.org site doesn't run on Apache itself, but on some other server software? Node.js? Ruby? Tomcat? Anything running on port 8080?
thank you for the insight regarding the proxypass.
Regarding the site unavailable, at the time you checked, the web app wasn't running yet. It should be working now. Thank you for your help. You guys are amazing.