本文介绍如何在Apache服务器配置通配符域名SSL证书,具体包括下载和上传证书文件,在Apache上配置证书文件、证书链和证书密钥等参数,以及安装证书后结果的验证。成功配置SSL证书后,您将能够通过HTTPS加密通道安全访问Apache服务器,确保数据传输的安全性。
本文以CentOS操作系统、Apache 2.4.6为例介绍。不同版本的操作系统或Web服务器,部署操作可能有所差异,如有问题,请联系产品技术专家进行咨询,详情请参见专家一对一服务。
前提条件
步骤一:下载SSL证书
登录数字证书管理服务控制台。
在左侧导航栏,选择。
在SSL证书管理页面,定位到目标证书,在操作列,单击下载。
在服务器类型为Apache的操作列,单击下载。
解压缩已下载的SSL证书压缩包。
根据您在提交证书申请时选择的CSR生成方式,解压缩获得的文件不同,具体如下表所示。
CSR生成方式
证书压缩包包含的文件
系统生成或选择已有的CSR
证书文件(CRT格式):默认以证书绑定域名_public命名。CRT格式的证书文件采用Base64-encoded编码的文本文件。
证书链文件(CRT格式):默认以证书绑定域名_chain命名。
私钥文件(KEY格式):默认以证书绑定域名命名。
手动填写
如果您填写的是通过数字证书管理服务控制台创建的CSR,下载后包含的证书文件与系统生成的一致。
如果您填写的不是通过数字证书管理服务控制台创建的CSR,下载后只包括证书文件(PEM格式),不包含证书密码或私钥文件。您可以通过证书工具,将证书文件和您持有的证书密码或私钥文件转换成所需格式。转换证书格式的具体操作,请参见证书格式转换。
步骤二:在Apache服务器安装证书
执行以下命令,在Apache的安装目录下创建一个用于存放证书的cert目录。
sudo mkdir /etc/httpd/cert
说明/etc/httpd/
是使用yum方式安装Apache时默认安装目录。如果您手动修改过该目录或使用其他方式安装的Apache,请根据实际配置调整。将证书文件和私钥文件上传至
/etc/httpd/cert
目录。说明您可以使用远程登录工具附带的本地文件上传功能,上传文件。例如PuTTy、Xshell或WinSCP等。如果您使用的阿里云云服务器 ECS,上传文件具体操作,请参见上传或下载文件(Windows)或上传文件到Linux云服务器。
检查
LoadModule ssl_module modules/mod_ssl.so
(用于加载mod_ssl.so模块启用SSL服务) 和Include conf.modules.d/*.conf
(用于加载SSL配置目录)是否被注释,如果被注释,请删除#注释。由于操作系统以及Apache安装方式不同,以上内容所处的位置也不同。可能出现在Apache安装目录的以下位置:
conf.modules.d/00-ssl.conf:本文中
LoadModule ssl_module modules/mod_ssl.so
位于该配置文件下(/etc/httpd/conf.modules.d/00-ssl.conf
)。httpd.conf:本文中
Include conf.modules.d/*.conf
位于该配置文件下(/etc/httpd/httpd.conf
)。http-ssl.conf
重要如果仍未找到以上参数,请确认您的Apache服务器中是否已经安装mod_ssl.so模块。如未安装,可执行
yum install -y mod_ssl
命令安装,安装后,可执行httpd -M | grep 'ssl'
命令检查mod_ssl.so是否安装成功。2022年1月1日起CentOS官方将不再对CentOS 8提供服务支持,如果您的操作系统是CentOS 8,yum命令可能无法正常使用,具体解决办法,请参见CentOS 8 EOL如何切换源?。
打开ssl.conf,修改与证书相关的配置。
打开ssl.conf。
sudo vim /etc/httpd/conf.d/ssl.conf
重要ssl.conf文件在不同操作系统的位置和名称不一样,在没有ssl.conf文件的情况下,请您查看Apache安装目录是否存在
conf/extra/http-ssl.conf
配置文件。在ssl.conf配置文件中,定位到以下参数,按照中文注释修改。
<VirtualHost _default_:443> #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要修改) #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差 SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA #将domain_name_public.crt替换成您证书文件名。 SSLCertificateFile /etc/httpd/cert/domain_name_public.crt #将domain_name.key替换成您证书的私钥文件名。 SSLCertificateKeyFile /etc/httpd/cert/domain_name.key #将domain_name_chain.crt替换成您证书的证书链文件名。 SSLCertificateChainFile /etc/httpd/cert/domain_name_chain.crt </VirtualHost>
可选:在
/etc/httpd/conf/httpd.conf
文件中添加以下重定向代码,设置HTTP请求自动跳转HTTPS。RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
执行以下命令,重启Apache服务器使SSL配置生效。
sudo systemctl restart httpd
步骤三:验证SSL证书是否安装成功
证书安装完成后,访问网站域名,如果网页地址栏出现小锁标志,表示证书已经安装成功。
https://yourdomain #需要将yourdomain替换成证书绑定的域名。