阿里云ECS配置免费ssl实现https访问
经过一番努力,加上一步步的实践,终于实现了在阿里云ecs主机上配置ssl达到https访问的目的。
废话不多说,现在就上步骤。
1.申请证书
https://common-buy.aliyun.com/?spm=5176.7968328.1120760.1.610812322W5ZVJ&commodityCode=cas#/buy
在这个页面,选择免费证书,可以以使用一年。
然后会出现填写个人信息的弹窗,按提示填写就行了。
然后登陆证书控制台,审核通过的ssl证书是这样的
此时要点击下载证书,把证书传到服务器上。
2.
在服务器上创建存放证书的文件夹
mkdir /usr/local/nginx/ssl
把下载下来的证书 xxx.key, xxx.pem 传到这个文件夹
3.
nginx 配置 这里我是用的是nginx服务器
vim /usr/local/nginx/conf/nginx.conf
server 中其他配置该怎么配和之前一致,这里是增加的ssl的配置
4. 检查nginx配置
/usr/local/nginx/sbin -t
检查配置如果发现了报错,说明你没有安装ssl的nginx扩展
nginx: [emerg] unknown directive "ssl"
这里说明下安装nginx ssl扩展
在 /usr/local/ 目录下 下载nginx1.10.3 软件包
wget http://nginx.org/download/nginx-1.10.3.tar.gz
解压
tar zxvf nginx-1.10.3.tar.gz
进入目录
cd nginx-1.10.3
./configure --prefix=/usr/local/nginx --with-http_ssl_module // 加上http的ssl支持模块
编译完成后 在此目录下执行
make
发现目录中多了objs, 替换 原来的 nginx启动文件
cp /objs/nginx /usr/local/nginx/sbin/nginx
查看是否已经替换
/usr/local/nginx/sbin/nginx -V
发现版本已经是1.10.3 说明替换成功
现在检查nginx配置应该不会报错了
5. 重启nginx
这里注意 nginx -s reload 并不能重启打开监听443端口
需要杀死之前的nginx进程
ps -aux | grep nginx
kill nginx 进程号
/usr/local/nginx/sbin/nginx
netstat -anp | grep 443
查看到 443 端口被nginx监听说明成功
6. 设置阿里云安全组
在阿里云ces实例左侧有安全组的导航,点击进入后,添加安全组策略,增加443端口的访问,如图
7.设置服务器防火墙iptables开启443端口
vim /etc/sysconfig/iptables
添加一行,保存
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
然后重启iptables
systemctl restart iptables
8.访问https
大功告成,没有出现绿色锁是因为内部访问的一些资源不是https的,修改后就可以显示绿色锁了。