本文介绍在阿里云购买SSL证书后,如何在Apache服务器配置SSL证书,具体包括下载和上传证书文件,在Apache上配置证书文件、证书链和证书密钥等参数,以及安装证书后结果的验证。成功配置SSL证书后,您将能够通过HTTPS加密通道安全访问Apache服务器,确保数据传输的安全性。
已通过数字证书管理服务控制台签发证书。
SSL证书绑定的域名已完成DNS解析,即您的域名与主机IP地址相互映射。您可以通过DNS验证证书工具,检测域名DNS解析是否生效。
Apache服务器已安装mod_ssl.so模块(启用SSL功能)。
如未安装,可执行yum install -y mod_ssl
命令安装。安装后,可执行httpd -M | grep 'ssl'
检查mod_ssl.so是否安装成功。
安装成功效果图:
登录数字证书管理服务控制台。
在左侧导航栏,选择。
在SSL 证书页面,定位到目标证书,在操作列,单击下载。
在服务器类型为Apache的操作列,单击下载。
解压缩已下载的SSL证书压缩包。
根据您在提交证书申请时选择的CSR生成方式,解压缩获得的文件不同,具体如下表所示。
CSR生成方式 |
证书压缩包包含的文件 |
系统生成或选择已有的CSR |
|
手动填写 |
|
执行以下命令,在Apache的安装目录下创建一个用于存放证书的cert目录。
进入Apache的安装目录。
cd /etc/httpd/ #使用yum安装Apache的默认安装目录。如果您手动修改过该目录或使用其他方式安装的Apache,请根据实际配置调整。
创建cert目录。
mkdir cert #创建证书目录,命名为cert。
将证书文件和私钥文件上传到Apache服务器的证书目录(/etc/httpd/cert)。
编辑Apache配置文件httpd.conf和ssl.conf,修改与证书相关的配置。
找到LoadModule ssl_module modules/mod_ssl.so
(用于加载mod_ssl.so模块启用SSL服务) 和Include conf.modules.d/*.conf
(用于加载SSL配置目录),并检查是否被注释,如果被注释,请删除#注释。
执行以下命令,打开ssl.conf配置文件。
vim /etc/httpd/conf.d/ssl.conf
在ssl.conf配置文件中,定位到以下参数,按照中文注释修改。
<VirtualHost *:443> ServerName #修改为申请证书时绑定的域名。 SSLCertificateFile cert/domain_name_public.crt # 将domain_name_public.crt替换成您证书文件名。 SSLCertificateKeyFile cert/domain_name.key # 将domain_name.key替换成您证书的密钥文件名。 SSLCertificateChainFile cert/domain_name_chain.crt # 将domain_name_chain.crt替换成您证书的证书链文件名。 #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置) #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。 #SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。 #SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。 </VirtualHost> #如果证书包含多个域名,复制VirtualHost参数,并将ServerName修改为第二个域名。 <VirtualHost *:443> ServerName #修改为申请证书时绑定的第二个域名。 SSLCertificateFile cert/domain_name2_public.crt # 将domain_name2替换成您申请证书时的第二个域名。 SSLCertificateKeyFile cert/domain_name2.key # 将domain_name2替换成您申请证书时的第二个域名。 SSLCertificateChainFile cert/domain_name2_chain.crt # 将domain_name2替换成您申请证书时的第二个域名。 SSLEngine on SSLHonorCipherOrder on #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置) #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。 #SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。 #SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。 </VirtualHost>
可选:修改conf/httpd.conf文件,设置HTTP请求自动跳转HTTPS。
在httpd.conf文件中添加以下重定向代码。
RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
重启Apache服务器使SSL配置生效。
执行apachectl -k stop
停止Apache服务。
执行apachectl -k start
开启Apache服务。
证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功。
https://yourdomain #需要将yourdomain替换成证书绑定的域名。
如果网页地址栏出现小锁标志,表示证书已经安装成功。