APACHE安装SSL证书

Apache格式的证书解压后应包含三个文件:

domain.com.crt  (域名证书,也可能是pem格式)
domain.com.key  (私钥文件)
domain.com-ca-bundle.crt (根证书链,也可能是其他文件名,一般带有 ca 或者 chain )

第一步把证书放在apache的conf/ssl目录下,如果conf目录里没有ssl目录,可以新建一个
放在conf/ssl可以用相对路径,其他位置需要用绝对路径

第二步找到站点的80端口配置,一般在conf/vhosts.conf文件里(有的是在conf/extra/httpd-vhosts.conf),比如下面这一段

<VirtualHost *:80>
  ServerName 371cloud.cn
  ServerAlias www.371cloud.cn
  DocumentRoot /www/wwwroot
  #其他的配置信息···
</VirtualHost>

第三步在vhosts.conf同级目录里,新建一个vhosts-https.conf文件,复制80端口配置过来进行修改,添加ssl配置

<VirtualHost *:443>
  ServerName 371cloud.cn
  ServerAlias www.371cloud.cn
  DocumentRoot /www/wwwroot
  #不同证书文件名和后缀可能不同  修改文件名为apache的3个实际文件名即可
  SSLEngine on
  SSLCertificateFile   conf/ssl/371cloud.cn.crt
  SSLCertificateKeyFile  conf/ssl/371cloud.cn.key
  SSLCertificateChainFile conf/ssl/371cloud.cn-ca-bundle.crt
  #其他的配置信息···
</VirtualHost>

第四步打开conf目录里的httpd.conf文件,找到 Include conf/vhosts.conf 在下面添加

#这一行一般在文件后面,从后面更容易找到
Include conf/vhosts.conf
#下面是添加的
Include conf/vhosts-https.conf
Listen 443
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On

配置完成重启Apache使其生效
使用https://domain.com 测试是否可以访问

配置完成如果apache无法启动,先检查是否加载 mod_ssl.so 模块的问题

Linux 检查 mod_ssl.so模块

Linux系统检测方法使用以下命令:

find / -name mod_ssl.so | grep modules/mod_ssl.so

如果能查找到 mod_ssl.so 一般情况下已经安装了mod_ssl.so模块

如果没有找到,可以用下面的命令安装

CentOS/Redhat安装mod_ssl.so

yum install mod_ssl

Debian/Ubuntu

sudo a2enmod ssl
sudo service apache2 restart

打开httpd.conf文件查看是否加载ssl模块

LoadModule ssl_module modules/mod_ssl.so (如果前面有#号要去掉)

Windows 检查 mod_ssl.so模块

Windows一般只需要打开httpd.conf文件查看是否加载ssl模块

LoadModule ssl_module modules/mod_ssl.so (如果前面有#号要去掉)