友情提示:此篇文章大约需要阅读 6分钟33秒,不足之处请多指教,感谢您的阅读。 订阅本站
自己博客更新也是进了坑,为了是广大网友及自己以后再次进坑,做一下记录。
准备工作
- 具有阿里云账号,需要个人认证的;
- 最好是有阿里云的云产品,我的就是ECS;
- 了解Ngix、Apache在不同系统,及不同安装方式,配置文件目录及安装目录所在文件位置;
- 有一个好用的SSH远程工具,当然,你可以使用阿里云自带的。
申请阿里云SSL证书
阿里云官网:https://www.aliyun.com/
首先在首页选择“产品 –> 安全 –> SSL证书”

在打开的页面点击立即购买,选择以下配置商品:

上面的就是阿里云给我们提供的 Symantec 的 免费型DV SSL。点击立即购买即可。
下载SSL证书
中间省了两步,分别是申请和审核,自己就可以解决的。
由于我的是Apache版本,同样,步骤一样;

选择“ 下载 ”,右侧提示信息见下图:

根据你不同的服务器进行下载部署即可。
Apache服务器安装SSL证书
在证书控制台下载Apache版本证书,下载到本地的是一个压缩文件,解压后里面包含_public.crt文件是证书文件,_chain.crt是证书链(中间证书)文件,.key文件是证书的私钥文件(申请证书时如果没有选择系统创建CSR,则没有该文件)。
友情提示: .crt扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要,修改成.pem等扩展名。
以Apache标准配置为例,假如证书文件名是a_public.crt,证书链文件是a_chain.crt,私钥文件是a.key。
操作步骤
- 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为a.key;
- 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”。
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf(删除行首的配置语句注释符号“#”,保存后退出)
- 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句:
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile cert/a_public.crt
# 证书私钥配置
SSLCertificateKeyFile cert/a.key
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile cert/a_chain.crt
- 重启 Apache。
apachectl -k stop
apachectl -k start
开放访问权限
很多人都会遇到配置好了ssl,但是服务器没有响应,大部分除了配置有问题外,就是你的网站权限没有放开,放开权限之后,由于你的网站都开启SSL,紧接着你会遇到https可以访问,但是显示It works!http可以正常访问,那么就是你的ssl配置文件没有配置好。
Apache httpd开放访问权限
Ubuntu系统默认apache位置:/usr/local/apache
找到httpd.conf文件: /usr/local/apache/conf,并且修改访问权限,修改为以下代码:
将AllowwOverride None换成 AllowwOverride ALL,
并且加上Order deny, allow allow from all;
<Directory />
AllowOverride All
Require all denied
Order deny,allow
allow from all
</Directory>
将AllowOverride None换成AllowOverride All
<Directory "/data/wwwroot/default">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
httpd-ssl.conf文件配置
遇到https可以访问,但是显示It works!http可以正常访问,那么就是你的ssl配置文件没有配置好。 肯定是你的这个文件没有配置好,见下面代码:
<VirtualHost _default_:443>
# General setup for the virtual host
DocumentRoot "/****/****/default"
ServerName www.example.com:443
ServerAdmin you@example.com
ErrorLog "/usr/local/apache71/logs/error_log"
TransferLog "/usr/local/apache71/logs/access_log"
需要将DocumentRoot设置为你的网站文件位置,ServerName后面的www.example.com改为你的网站域名即可,同时重启Apache,完美解决问题。
参考文章: Apache服务器安装SSL证书
发表回复