我有一台服务器配置为使用Apach 2.4动态配置的vhosts.我为某些域配置了SSL但我被要求使用Let的加密免费服务为所有域提供SSL.
Certbot对我来说有点不清楚,因为我不确定它是否适用于动态虚拟主机.
我的挑战是我在子域subXXX.masterdomain.com和别名yourchoicedomain.com上提供了每个域名,因此我需要生成获取证书表格让我们的加密有效
> subXXX.masterdomain.com
> www.subXXX.masterdomain.com
> yourchoicedomain.com
> www.yourchoicedomain.com
我没有一个非常复杂的vhosts配置文件我使用符号链接实现域别名和www服务器别名.
<VirtualHost *:80> #ServerName masterdomain.me #ServerAlias * # get the server name from the Host: header UseCanonicalName Off # include the server name in the filenames used to satisfy requests VirtualDocumentRoot "/var/www/vhosts/%0/httpdocs" RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTPS} off RewriteRule .* http://www.%{HTTP_HOST}$0 [R=301,L] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteCond %{HTTPS} on RewriteRule .* https://www.%{HTTP_HOST}$0 [R=301,L] <Directory "/var/www/vhosts/*/httpdocs"> AllowOverride "All" Options SymLinksIfOwnerMatch Require all granted Order allow,deny Allow from all </Directory> </VirtualHost>
让我入门的任何帮助都会很棒.
由于certbot无法确定Apache配置中的活动域名,因此您需要解决这个问题.
原文链接:https://www.f2er.com/centos/373403.html因为在mod vhost alias
中存在一个子目录就是“激活”域名我会建议一个简单的shell脚本枚举所有子目录(=所有活动域),然后使用--webroot
选项运行certbot来创建以下行的内容:
certbot certonly --webroot -w var/www/vhosts/www.example.com/httpdocs -d www.example.com -d example.com -w var/www/vhosts/www.example.net/httpdocs -d www.example.net -d other.example.net