为我的虚拟主机设置 SSL [已关闭]

Set SSL for my virtual host [closed]

提问人:ali chouchen 提问时间:4/18/2017 更新时间:11/19/2023 访问量:2453

问:


这个问题似乎不是关于特定的编程问题、软件算法或程序员主要使用的软件工具。如果您认为该问题在另一个 Stack Exchange 站点上是主题,您可以发表评论以解释该问题可能在哪里得到回答。

6天前关闭。

我在服务器中创建了一个虚拟主机,我想为它设置 HTTPS。 我复制了另一个虚拟主机文件,但我得到

“您的连接不安全”

该文件适用于其他站点 (site1)。我是否也应该为第二个网站创建不同的证书(mywebsite.com)?如果是,那我该怎么做. 这是我的/etc/apache2/sites-available/www.mywebsite.com.conf

<VirtualHost *:80>

        ServerAdmin webmaster@localhost
        ServerName www.dev.clevvermail.com
        DocumentRoot /var/www/vhosts/ww.mywebsite.com-dev/current           
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        Redirect 301 / https://www.mywebsite.com/
</VirtualHost>

<IfModule mod_ssl.c>
        <VirtualHost *:443>
                ServerAdmin webmaster@localhost
                DocumentRoot /var/www/vhosts/mywebsite.com-dev/current
                ServerName www.dev.clevvermail.com
                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined
                SSLEngine on
                SSLCertificateFile      /etc/letsencrypt/live/www2.site1.com-0001/cert.pem
                SSLCertificateKeyFile /etc/letsencrypt/live/www2.site1.com-0001/privkey.pem

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /var/www/vhosts/mywebsite.com-dev/ >
                Options Indexes FollowSymLinks
                AllowOverride All
         </Directory>
         <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
         </Directory>
            SSLCertificateChainFile /etc/letsencrypt/live/www2.site1.com-0001/chain.pem
</VirtualHost>
</IfModule>
Apache SSL协议

评论

0赞 Bogdan Stoica 4/18/2017
您需要为每个虚拟主机/域提供 SSL 证书。例如,您不能将 abc.com 的SSL证书用于 xyz.com 域,反之亦然。您还必须为域 xyz.com 添加另一个虚拟主机,依此类推......

答:

0赞 bourax webmaster 4/18/2017 #1

您只需为您的 VirtualHost 使用不同的 SSL 证书 mywebsite.com 我看到您正在使用 Letsencrypt,因此您可以创建一个新证书,如下所示(您说该证书适用于 site1,因此 Letsencrypt 安装良好):

cd /opt/letsencrypt

您可以检查谁在使用端口 443:

sudo netstat -t -l -n -p | grep 443

大多数时候它会是 Apache,所以停止它:

sudo service apache2 stop

创建证书

sudo -H ./letsencrypt-auto certonly --standalone -d www.mywebsite.com

您将获得 :

重要提示: -祝贺!您的证书和链已保存在 /etc/letsencrypt/live/www.mywebsite.com/fullchain.pem 中。您的证书 将于 2017-07-17 到期。获取新的或调整后的版本 此证书以后,只需再次运行 letsencrypt-auto 即可。 若要以非交互方式续订所有证书,请运行 “letsencrypt-自动续订”

然后将其设置为 .conf 文件,重新启动 apache2

...
SSLCertificateFile      /etc/letsencrypt/live/www.mywebsite.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mywebsite.com/privkey.pem
...

不要忘记启动 Apache:

sudo service apache2 start
-2赞 Jaime Montoya 11/17/2023 #2

我所做的是为该站点创建一个目录:。然后我在网站的文件中创建了这个文件,特别是这个:/var/www/example.com/etc/apache2/sites-available/.conf

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com
    ErrorLog /error.log
    CustomLog /access.log combined
  </VirtualHost>
</IfModule>

我使用 启用了我的新 Apache 站点/虚拟主机。最后,我使用 激活了新配置。a2ensite example.com-le-ssl.confsystemctl reload apache2

我在我的博客上发布了整个解决方案的所有细节 https://jaimemontoya.com/blog/2023/11/17/13/08/

评论

0赞 Nimantha 11/18/2023
请注意,此答案可能被视为垃圾邮件......这是您发布的第二个答案,其中包含返回(您的)该网站的链接。此外,答案似乎过度引用了所述站点(而不是采用此问题的解决方案)
1赞 Nimantha 11/18/2023
著名的。关于博客的链接(你的?) - 理想情况下,答案不应该需要链接(答案中的所有信息),但是,如果您确实想保持原样,那么最好添加披露,例如我的网站......(这是你的博客,对吧?
1赞 Nimantha 11/18/2023
另外,为了记录 - 我没有对这个或你的其他帖子进行投票 - 只是在编辑时碰巧遇到了它。
2赞 Ken White 11/18/2023
@JaimeMontoya:如果是临时内容,最终会被销毁,这里不合适。所有内容都必须保持可供未来的网站用户访问,并且使用的任何链接都必须是永久的或维护的(在更改时更新)。如果内容被破坏,则对本网站没有价值,不应使用。
1赞 Ken White 11/18/2023
然后使用 ,原因我之前已经解释过了。您仍然很幸运,没有人将其标记为垃圾邮件,以及您包含类似示例链接的其他帖子。example.com