在Apache服务器上安装SSL证书
发布时间:2022/01/04
本章节介绍如何将下载的证书安装到Apache服务器上。安装好证书后,您的Web服务器将能支持SSL通信。
如果证书安装过程中遇到问题,华为云提供SSL证书配置优化服务,可实现云上全品牌SSL证书配置,工程师一对一服务。请直接单击一对一咨询进行购买,购买服务后,联系工程师进行处理。
前提条件
- “证书状态”为 “已签发”。
- 已下载SSL证书,具体操作请参见下载证书。
约束条件
- 证书安装前,务必在安装SSL证书的服务器上开启 “443”端口,同时在组增加 “443”端口,避免安装后仍然无法启用HTTPS。
- 如果一个域名有多个服务器,则每一个服务器上都要部署。
- 待安装证书的服务器上需要运行的域名,必须与证书的域名一一对应,即购买的是哪个域名的证书,则用于哪个域名。否则安装部署后,浏览器将提示不。
操作步骤
在Apache服务器上安装SSL证书的流程如下所示:
①获取文件 → ②创建目录 → ③修改配置文件 → ④重启Apache → ⑤效果验证
步骤一:获取文件
安装证书前,需要获取证书文件和密码文件,请根据申请证书时选择的 “证书请求文件”生成方式来选择操作步骤:
- 如果申请证书时, “证书请求文件”选择 “系统生成CSR”。
- 如果申请证书时, “证书请求文件”选择 “自己生成CSR”。
具体操作如下:
- 系统生成CSR
- 在本地解压已下载的证书文件。
- 从 “ 证书ID_ 证书绑定的域名_Apache”文件夹内获得证书文件 “ 证书ID_ 证书绑定的域名_ca.crt”, “ 证书ID_ 证书绑定的域名_server.crt”和私钥文件 “ 证书ID_ 证书绑定的域名_server.key”。
- “ 证书ID_ 证书绑定的域名_ca.crt”文件包括一段中级CA证书代码 “-----BEGIN CERTIFICATE-----”和 “-----END CERTIFICATE-----”。
- “ 证书ID_ 证书绑定的域名_server.crt”文件包括一段服务器证书代码 “-----BEGIN CERTIFICATE-----”和 “-----END CERTIFICATE-----”。
- “ 证书ID_ 证书绑定的域名_server.key”文件包括一段私钥代码 “-----BEGIN RSA PRIVATE KEY-----”和 “-----END RSA PRIVATE KEY-----”。
- 自己生成CSR
- 解压已下载的证书压缩包,获得 “ 证书ID_ 证书绑定的域名_server.pem”文件。
“ 证书ID_ 证书绑定的域名_server.pem”文件包括两段证书代码 “-----BEGIN CERTIFICATE-----”和 “-----END CERTIFICATE-----”,分别为服务器证书和中级CA证书。
- 拷贝 “ 证书ID_ 证书绑定的域名_server.pem”文件的开始段证书代码(服务器证书),并另存为 “server.crt”文件。
- 拷贝 “ 证书ID_ 证书绑定的域名_server.pem”文件的段证书代码(中级CA),并另存为 “ca.crt”文件。
- 将 “ca.crt”、 “server.crt”和生成CSR时的私钥 “server.key”放在任意文件夹内。
- 解压已下载的证书压缩包,获得 “ 证书ID_ 证书绑定的域名_server.pem”文件。
步骤二:创建目录
在Apache的安装目录下创建 “cert”目录,并且将 “server.key”、 “server.crt”和 “ca.crt”拷贝到 “cert”目录下。
步骤三:修改配置文件
- 配置Apache中“conf”目录下的 “httpd.conf”文件。
- 用文本编辑器打开Apache根目录下 “conf/httpd.conf”文件。
- 找到以下2个参数,并删除行首的配置语句注释符号 “#”。
#LoadModule ssl_module modules/mod_ssl.so(如果找不到请确认是否编译过openssl插件) #Include conf/extra/httpd-ssl.conf
- 修改后,保存 “httpd.conf”文件并退出编辑。
- 配置Apache中“conf/extra”目录下的 “httpd-ssl.conf”文件。
- 用文本编辑器打开Apache根目录下 “conf/extra/httpd-ssl.conf”文件(由于操作系统及安装方式的不同, “httpd-ssl.conf”文件也可能存放在“conf.d/ssl.conf”目录下)。
- 配置证书绑定的域名。 找到并修改如下参数:
ServerName www.example.com:443
完整配置如下(以 “www.domain.com”为例):
ServerName www.domain.com:443 #用户服务器的域名
- 配置证书公钥。
找到并修改如下参数:
SSLCertificateFile "${SRVROOT}/conf/server.crt"
设置证书公钥文件 “server.crt”文件的路径,且路径中不能包含中文字符,例如 “cert/server.crt”。
完整配置如下:
SSLCertificateFile "cert/server.crt"
- 配置证书私钥。
新增如下参数:
SSLCertificateKeyFile "${SRVROOT}/conf/server.key"
设置为 “server.key”文件的路径,且路径中不能包含中文字符,例如 “cert/server.key”。
完整配置如下:
SSLCertificateKeyFile "cert/server.key"
- 配置证书链。
找到并修改如下参数:
#SSLCertificateChainFile "${SRVROOT}/conf/server-ca.crt"
删除行首的配置语句注释符号 “#”,并设置为 “ca.crt”文件的路径,且路径中不能包含中文字符,例如 “cert/ca.crt”。
完整配置如下:
SSLCertificateChainFile "cert/ca.crt"
- 修改后,保存 “httpd-ssl.conf”文件并退出编辑。
步骤四:重启Apache
执行以下操作重启Apache,使配置生效。
- 在Apache bin目录下执行 apachectl -k stop命令停止Apache服务。
- 在Apache bin目录下执行 apachectl -k start命令开启Apache服务。
效果验证
部署成功后,可在浏览器的地址栏中输入 “https://域名”,按 “Enter”。
如果浏览器地址栏显示锁标识,则说明证书安装成功。