如何为 CentOS 7 上托管的多个网站设置 LetsEncrypt SSL?

如何为 CentOS 7 上托管的多个网站设置 LetsEncrypt SSL?

我有一台装有 Apache 的 CentOS 7 服务器。目前有多个网站使用 VirtualMin 托管在虚拟服务器上作为“顶级服务器”和“子服务器”,即 Apache Webserver 中的多个虚拟服务器。

  • 顶级服务器 - www.example1.com (wordpress)
  • 子服务器 - www.example2.com (wordpress)
  • 子服务器 - www.example3.com (opencart)
  • 等等..

Apache 虚拟服务器:

  • 默认服务器 - /var/www/html
  • 虚拟服务器 - example1.com - /home/example1/public_html
  • 虚拟服务器 - example2.com - /home/example1/domains/example2.com/public_html
  • 虚拟服务器 - example3.com - /home/example1/domains/example3.com/public_html

我想为所有网站安装 LetsEncrypt SSL。我应该为所有域名安装 1 个 SSL 证书还是为每个域名安装 1 个?

我该怎么做?任何帮助都将不胜感激。

答案1

您有两个选择:

  • 通过多次单独的调用获取多个证书certbot

  • certbot通过一次调用(指定多个选项)获取具有多个 SAN(主题备用名称)的单个证书-d

如果网站完全不相关,我会使用选项 1。如果它们紧密相关,我会使用选项 2。

答案2

我使用 Debian 和 Ubuntu 系统,我喜欢它们的“站点可用与站点启用的每个站点单独配置”的理念。

所以...

我为每个 vhost 都有一个 httpd conf 文件。

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  RewriteEngine on
  RewriteRule ^/(.*)$ https://www.example.com/$1 [R,L]
</VirtualHost>
<VirtualHost 10.0.2.15:443>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin [email protected]
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    CustomLog ${APACHE_LOG_DIR}/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    DocumentRoot /var/www-example.com
    <directory /var/www-example.com>
        Options All
                AllowOverride All
                Require all granted
    </directory>
    ErrorLog ${APACHE_LOG_DIR}/ssl-example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/ssl-example.com-access.log combined
</VirtualHost>

不要忘记为 建立目录DocumentRoot

然后,停止 apache web 服务器,确保防火墙接受到端口 443 的连接,并调用 或certbotletsencrypt我不相信它会修改我的 apache 配置,所以我使用 选项certonly。对每个域执行一次 -

letsencrypt certonly -d example.com -d www.example.com

然后链接 apache 配置sites-enabled或使用a2ensite或无论如何管理活动配置,使用 apache 配置进行测试apache2ctl -t,如果所有报告正常则重新启动 apache。

相关内容