如何在 CentOS 上以 LAMP 配置运行的网站上安装通配符 SSL 证书?

如何在 CentOS 上以 LAMP 配置运行的网站上安装通配符 SSL 证书?

通配符证书来自 Entrust。

它看起来应该非常简单但我还无法让它工作。

这是针对在使用我们域名的通配符证书之前尚未有关联的 SSL 证书的新站点。

我的虚拟主机条目如下:

<VirtualHost xxx.xxx.xx.xx:443>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html/sitename
    ServerName site.company.com
    ErrorLog logs/site_log
    CustomLog logs/site_log common
    ErrorDocument 404 /customerrors/404.htm
    SSLEngine On
    SSLCertificateFile    /etc/pki/tls/certs/wildcard.crt
    SSLCertificateKeyFile /etc/pki/tls/private/wildcard.key
    SSLCertificateChainFile /etc/pki/tls/certs/chain.crt
</VirtualHost>

当我尝试通过 SSL 访问该网站时,出现以下错误(当使用自签名证书而不是应该使用的通配符证书时,这是非常标准的):

site.company.com uses an invalid security certificate.

The certificate is not trusted because it is self-signed.
The certificate is only valid for localhost

(Error code: sec_error_untrusted_issuer)

我已经重新启动了 apache,所以这不是问题。

答案1

正如 Yasith 在他的回答中指出的那样,您可能需要配置中的中间 CA 包,但这不是您收到的错误,因为根据您所发布的内容,您显然获得了蛇油证书。

鉴于有骗人的证书,您需要检查该 IP 和端口 443 上的所有其他 SSL 服务器虚拟主机是否都已关闭。我认为发生的情况是,您已配置了真正的虚拟主机,但没有关闭 Apache 随附的默认配置。

答案2

通配符证书没有什么不同或特殊之处;您可以像任何其他证书一样实现它们。

你需要:

  1. mod_ssl启用,
  2. Listen 443
  3. 启用<VirtualHost>SSL 的:

    <VirtualHost *:443>
        ServerName example.com
        ServerAlias www.example.com
        SSLEngine On
        SSLCertificateFile /path/to/certificate.pem
        SSLCertificateKeyFile /path/to/private.key
        # all other config for the site; docroot, logging, access, etc
    </VirtualHost>
    

答案3

<VirtualHost *:443>
     SSLEngine On
     SSLCertificateFile /etc/pki/tls/certs/example.com.crt
     SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
     SSLCACertificateFile /etc/pki/tls/certs/root-certificate.crt  #If using a self-signed certificate or a root certificate provided by ca-certificates, omit this line

     ServerAdmin [email protected]
     ServerName www.example.com
     DocumentRoot /var/www/example.com/public_html/
     ErrorLog /var/www/example.com/logs/error.log
     CustomLog /var/www/example.com/logs/access.log combined
</VirtualHost>

答案4

另外还要确保包含链文件。


<VirtualHost *:443>

         ServerAdmin [email protected]  
         ServerName  example.com  


         ErrorLog /var/log/apache2/ssl-error.log  
         LogLevel warn  
         CustomLog /var/log/apache2/ssl-access.log combined  
         ServerSignature On  

         SSLEngine On  
         SSLCertificateFile example.crt  
         SSLCertificateKeyFile example.key  
         SSLCertificateChainFile CA.crt

</VirtualHost>


相关内容