-1

我正在尝试为我的 apache 服务器设置一个 digicert ssl 通配符证书。我对某事有点困惑。到目前为止,我有以下配置:

NameVirtualHost *:80
<VirtualHost *:80>
  ServerName x.y.com
  ServerAlias x.y.com
  DocumentRoot /webapps/x/public
  <Directory /webapps/x/public>
    Options -MultiViews
    Order deny,allow
    Allow from all
  </Directory>
  ErrorLog /var/log/apache2/y.com_error.log
  LogLevel warn
  CustomLog /var/log/apache2/y.com_access.log combined
  ServerSignature On
</VirtualHost>

NameVirtualHost *:443
<VirtualHost *:443>
  ServerName x.y.com
  ServerAlias x.y.com
  DocumentRoot /webapps/x/public
  <Directory /webapps/x/public>
    Options -MultiViews
    Order deny,allow
    Allow from all
  </Directory>
  ErrorLog /var/log/apache2/y.com_error.log
  LogLevel warn
  CustomLog /var/log/apache2/y.com_access.log combined
  ServerSignature On

  SSLEngine on
  SSLCertificateFile /etc/certificates/www_y_com.crt
  SSLCertificateKeyFile /etc/certificates/www_y_com.key
  SSLCertificateChainFile /etc/certificates/DigiCertCA.crt
  RailsEnv myenv
</VirtualHost>

但我得到:

NameVirtualHost *:80 has no VirtualHosts (98)Address already in use: make_sock: could not bind to address 0.0.0.0:443 没有可用的监听套接字,正在关闭

我应该如何配置它以使其工作?

非常感谢!

4

1 回答 1

1

乍一看,您的虚拟主机 XML 看起来是正确的。我通常在 ports.conf 文件中编写 NameVirtualHost 指令,然后每个虚拟主机必须有自己的文件。在我的系统上,它位于 /etc/apache2/sites-available/your-domain-name

还有一件事。确保在您的路由器中打开端口 443。我一直都忘记了这一点,并花了几个小时试图弄清楚什么时候它就像从路由器配置中将端口转发 443 到您的服务器 ip 一样简单。

也不要忘记启用该站点。

# enable site
sudo a2ensite

# disable site
sudo a2dissite
于 2013-07-18T20:56:03.263 回答