本文为您带来详细的阿里云SSL证书安装到apache服务器,从而支持HTTPS安全访问的教程。
操作步骤:
1.登录阿里云->控制台->产品与服务->SSL证书(应用安全);如下图所示:
2 . 点击ssl证书进入ssl证书管理界面;如下图:
3.ssl证书管理界面有简单的流程图,这里首先应该购买证书,点击蓝色的 【购买证书】按钮;进入下图界面
这里可以选择证书类型根据自己需求选择,这里我选择的是免费版的
4 . 购买成功后进入证书控制台,点击申请证书按照要求填写相关信息完成证书的申请:
证书申请验证成功后等几分钟刷新页面就会显示申请成功 !
5.检测Apache服务器上是否开启了443端口(HTTPS服务的默认端口),Apache服务器是否安装了mode_ssl.so模块(启用SSL功能);如果没有则开启。
6.将证书下载到本地解压,解压后的文件有三个:
- 证书链文件:以.crt为后缀或文件类型;
- 密钥文件:以.key为后缀或文件类型;
- 证书文件:以.crt为后缀或文件类型。
7. 在Apache安装目录中新建cert目录,并将解压的Apache证书、 证书链文件和密钥文件拷贝到cert目录中。如果需要安装多个证书,需在Apache目录中新建对应数量的cert目录,用于存放不同的证书 。
8.修改httpd.conf配置文件
在Apache安装目录下,打开Apache/conf/httpd.conf文件,并找到以下参数,按照下文中注释内容进行配置。
#LoadModule ssl_module modules/mod_ssl.so #删除行首的配置语句注释符号“#”加载mod_ssl.so模块启用SSL服务,Apache默认是不启用该模块的。
#Include conf/extra/httpd-ssl.conf #删除行首的配置语句注释符号“#”。
如果您在httpd.conf文件中没有找到以上配置语句,请确认您的Apache服务器中是否已经安装mod_ssl.so模块。可执行
yum install -y mod_ssl
命令安装mode_ssl模块。
9 .修改httpd-ssl.conf配置文件。
根据操作系统的不同,http-ssl.conf文件也可能存放在conf.d/ssl.conf目录中。
<VirtualHost *:443>
ServerName #修改为申请证书时绑定的域名www.YourDomainName1.com。
DocumentRoot /data/www/hbappserver/public
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name1_public.crt # 将domain name1_public.crt替换成您证书文件名。
SSLCertificateKeyFile cert/domain name1.key # 将domain name1.key替换成您证书的密钥文件名。
SSLCertificateChainFile cert/domain name1_chain.crt # 将domain name1_chain.crt替换成您证书的密钥文件名;证书链开头如果有#字符,请删除。
</VirtualHost>
#如果证书包含多个域名,复制以上参数,并将ServerName替换成第二个域名。
<VirtualHost *:443>
ServerName #修改为申请证书时绑定的第二个域名www.YourDomainName2.com。
DocumentRoot /data/www/hbappserver/public
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM # 修改加密套件。
SSLHonorCipherOrder on
SSLCertificateFile cert/domain name2_public.crt # 将domain name2替换成您申请证书时的第二个域名。
SSLCertificateKeyFile cert/domain name2.key # 将domain name2替换成您申请证书时的第二个域名。
SSLCertificateChainFile cert/domain name2_chain.crt # 将domain name2替换成您申请证书时的第二个域名;证书链开头如果有#字符,请删除。
</VirtualHost>
需注意您的浏览器版本是否支持SNI功能。如果不支持,多域名证书配置将无法生效。
10. 重启Apache服务器使SSL配置生效
service httpd restart //重启apache服务
11. 修改httpd.conf文件,设置HTTP请求自动跳转HTTPS。
在httpd.conf文件中的<VirtualHost *:80> </VirtualHost>
中间,添加以下重定向代码。
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
这篇攻略如有不足希望朋友提出建议!