搜索本产品文档关键词
在Apache服务器上安装SSL证书
所有文档
menu

SSL证书服务 CAS

在Apache服务器上安装SSL证书

在Apache服务器上安装SSL证书

您可以将从百度智能云SSL证书控制台下载的证书安装到您的Apache服务器上,使Apache服务器支持HTTPS安全访问。

前提条件

  • 已安装OpenSSL。
  • Apache服务器已安装mod_ssl.so模块(启用SSL功能)。
  • 如未安装,可执行 yum install -y mod_ssl 命令安装。安装后,可执行 httpd -M | grep 'ssl' 检查 mod_ssl.so 是否安装成功。

安装成功效果图: image.png

  • 本文档证书名称以 domain 为示例,如证书文件名称为 domain.crt,证书链文件名称为 domain_ca.crt,证书密钥(私钥)文件名称为 domain.key
  • 申请证书时如果未选择系统自动创建CSR,证书下载压缩包中将不包含 .key 文件。

说明.crt 扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要修改成 .pem 等扩展名。

操作指南

  1. 登录百度智能云 SSL证书控制台
  2. 在SSL证书页面,定位到需要下载的证书并单击证书条目右下角的管理证书

e9b94c9839fb05fda767dcfb4e91f121.png

  1. 打开后点击证书下载对话框。选择PEM_nginx&apache格式并且键入证书压缩密码(注意不是证书密码也不是订单密码)将Apache版证书压缩包下载到本地。

apache.png

  1. 解压Apache证书。

    您将看到文件夹中有3个文件:

    • 证书文件(以 .crt.cer.pem 为后缀或文件类型)
    • 证书链文件(以 _ca.crt.cer.pem 为后缀或文件类型)
    • 秘钥文件(以 .key 为后缀或文件类型)

image.png

  1. 在Apache安装目录(一般在 /etc/httpd)中新建 cert 目录,并将下载的Apache证书、 证书链文件和秘钥文件拷贝到 cert 目录中。

说明:如果申请证书时选择了使用已有的CSR方式,请将手动生成创建的秘钥文件拷贝到 cert 目录中并命名为 domain.key

  1. 在Apache安装目录下,打开 Apache/conf/httpd.conf,在 httpd.conf 文件中找到以下参数并进行配置。

    {#codeblock_vj3_m4j_m4z}
    1#LoadModule ssl_module modules/mod_ssl.so  #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务,Apache默认是不启用该模块的。如果找不到该配置,请重新编译mod_ssl模块。
    2#conf.modules.d/*.conf #(用于加载SSL配置目录),检查是否被注释,如果被注释,请删除#注释。
  2. 保存 httpd.conf 文件并退出。
  3. 配置证书

    8.1. 打开 Apache/conf/extra/httpd-ssl.conf(如没有找到则参考8.2),在 httpd-ssl.conf 文件中找到以下参数并进行配置。 证书路径建议使用绝对路径。

    {#codeblock_pln_6w3_3ng}
    1SSLProtocol all -SSLv2 -SSLv3  # 添加SSL协议支持协议,去掉不安全的协议。
    2SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 使用此加密套件。
    3SSLHonorCipherOrder on
    4SSLCertificateFile cert/domain.crt   # 将domain.crt替换成您证书文件名。
    5SSLCertificateKeyFile cert/domain.key   # 将domain.key替换成您证书的秘钥文件名。
    6SSLCertificateChainFile cert/domain_ca.crt  # 将domain_ca.crt替换成您证书链文件名;证书链开头如果有#字符,请删除。

    8.2. 如没有找到上述文件,则编辑 Apache/conf.d/ssl.conf,在 ssl.conf 配置文件中,定位到以下参数,按照中文注释修改

    {#codeblock_pln_6w3_3ng}
    1<VirtualHost _default_:443> # 也可能是 <VirtualHost *:443> 
    2     ServerName www.xxx.com #修改为申请证书时绑定的域名。 
    3     SSLCertificateFile cert/domain.crt   # 将domain.crt替换成您证书文件名。
    4     SSLCertificateKeyFile cert/domain.key   # 将domain.key替换成您证书的秘钥文件名。
    5     SSLCertificateChainFile cert/domain_ca.crt  # 将domain_ca.crt替换成您证书链文件名;证书链开头如果有#字符,请删除。
    6</VirtualHost>
  4. 保存 httpd-ssl.conf 文件配置并退出。
  5. 重启Apache服务器使SSL配置生效。

    10.1. 在Apache bin 目录下执行以下命令停止Apache服务。

    Plain Text
    1    apachectl -k stop # 如发现无法停止服务,可以尝试使用 `systemctl stop httpd` 命令

    10.2. 在Apache bin 目录下执行以下命令开启Apache服务。

    Plain Text
    1    apachectl -k start # 如发现无法启动服务,可以尝试使用 `systemctl start httpd` 命令
  6. (可选步骤)设置Apache http自动跳转https。

    httpd.conf 文件中,在 <VirtualHost *:80> </VirtualHost> 中间,添加以下重定向代码。

    {#codeblock_p0s_ydw_17v}
    1RewriteEngine on
    2RewriteCond %{SERVER_PORT} !^443$
    3RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

后续操作

证书安装完成后,可通过登录证书绑定域名的方式验证证书是否安装成功。

{#codeblock_tmi_f7y_x1b}
1https://domain   #domain替换成证书绑定的域名

如果网页地址栏出现 小锁 标志,表示证书安装成功。

验证证书是否安装成功时,如果网站无法通过https正常访问,需确认您安装证书的服务器443端口是否已开启或被其他工具拦截。

上一篇
在Nginx或Tengine服务器上安装证书
下一篇
Tomcat服务器安装SSL证书