Certbot не будет выдавать сертификат для виртуального хоста, связывающего порт 80, только потому, что порт 80 буквально является незащищенным протоколом http.
Вам нужно добавить порт 443 к вашему готовому существующему виртуальному хосту, который является https, если только вы не используете плагин Certbot Apache2, вызвав Certbot с опцией --apache.
<VirtualHost *:80>
ServerName www.example.com
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
# ... SSL configuration goes here
</VirtualHost>
И не уверен, что понял вашу точку зрения о перенаправлении.
Но не ожидайте, что certbot выдаст сертификат для перенаправления, поскольку сертификат связан с именем хоста (url) и также будет отслеживать домен перед выдачей сертификата.
Но если вы говорите о перенаправлении www.example.com к https://example.com, вы можете добавить это в свой виртуальный хост *:80.
Перенаправление / https://www.example.com/
И забудьте об общеизвестных вещах и указании вашего корневого веб-каталога с помощью certbot, поскольку в этом нет необходимости.
Пока имя хоста, на котором вы хотите получить сертификат ssl, ваш виртуальный хост также должен связывать параметры порта *: 443 и уже является сайтом с поддержкой apache2. a2enssite <your-site.conf / your-site.vhost>
Certbot сделает все остальное.
И на самом деле я только что понял, что есть вероятность, что Certbot обнаружит ваш сайт Apache2, даже не дожидаясь порта 443, и позаботится об этом за вас, поправьте меня, если я ошибаюсь, поскольку долгое время не использовал его.
Но до тех пор, пока ваше имя хоста/домен/имя/url называется так, как вы предпочитаете, может быть достигнуто в браузере или возвращено ip, пропинговав ваш URL-адрес (за пределами вашей локальной сети), вам не нужно ничего редактировать.
И не забудьте использовать опцию Certbot --apache. Это значительно облегчит задачу. Сначала вам нужно установить пакет (sudo apt install python3-certbot-apache) или что-то в этом роде.