Hello,大家好呀!
今天跟大家分享的是一篇实战教程,手把手一步一步教你怎么在阿里云服务器上申请免费的SSL证书,并将证书配置到阿里云服务器的Nginx上,实现HTTPS加密访问的效果。
首先是SSL证书的作用:简单讲就是,配置了SSL证书的服务器可以使得用户在访问网站时,以https加密方式访问后台服务,保证了数据传输的安全性,提高了数据在互联网上传输的过程中被窃取的难度。
本次笔记记录在开发微信小程序过程中后台数据交互时,强制域名访问并要求使用HTTPS传输数据。基于该场景,将之前在阿里云购买的1核2G的云服务器用来做尝试。
申请操作步奏
❝
官方帮助文档:https://help.aliyun.com/document_detail/188316.htm?spm=5176.b657008.help.dexternal.40d51b48wYs5Xk
❞
-
首先需要登录阿里云控制台,然后找到【SSL 证书(应用安全)[1]】
-
点击
SSL证书
– 立即购买,选择免费的DV单域名证书
即可,立即购买时金额会显示为0,实际上就是免费的。每个人可以免费创建20个证书。 -
购买完成之后,还有回到控制台进行
证书申请
,这个操作会提交证书申请到CA中心审核。申请时需要填写身份信息和联系电话,然后需要对配置参数做校验。主要是校验:
-
主机记录:__dnsauth domainvalidation -
记录值:20210714000000XXXXXgpwl9 -
将校验值填入【域名[2]】的解析中,再回到
证书申请
页面点击校验是否成功。 -
等几分钟后,就可以下载证书文件了。配置教程可以参考官方文档,很详细。
在Linux上配置
首先下载离线包:
wget http://nginx.org/download/nginx-1.9.9.tar.gz
「安装必备的库」
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
❝
「说明:」
gcc:安装gcc-c++编译器 openssl openssl-devel:安装OpenSSL zlib zlib-devel:安装zlib包 pcre-devel:安装pcre包 ❞
「安装Nginx」
解压到 /user/local/
mkdir /usr/local/nginx
tar -zxvf nginx-1.9.9.tar.gz
cd nginx-1.19.9
进入目录:nginx-1.9.9
❝
此时如果需要配置SSL,则需要进行下列安装 SSL模块,否则会报如下错误:==nginx: [emerg] unknown directive “ssl” in /usr/local/nginx/conf/ngi…==
❞
执行编译命令:
# 支持https
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
# 编译安装
make
make install
查找安装路径
whereis nginx
执行Nginx
./nginx
查看是否启动成功
ps -ef | grep nginx
# 红色字后面有 master的表示为主进程
❝
**注意:**Nginx如果未开启SSL模块,配置https时会提示错误,由于现在大部分服务都要求https,所以我们在编译安装的时候,记得一定要带上 「–with-http_ssl_module」 配置,否则将来在使用时会提示错误哦,切记切记。
❞
查看nginx原有的模块
/usr/local/nginx/sbin/nginx -V
修改配置文件:
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name 域名;
access_log logs/host.access.log;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
#SSL 访问端口号为 443
listen 443 ssl;
# 填写绑定证书的域名
server_name 域名;
root html;
index index.html index.htm;
ssl_certificate /usr/local/nginx/conf/cert/xxxxx.pem;
ssl_certificate_key /usr/local/nginx/conf/cert/xxxxx.key;
# ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 指定SSL服务器端支持的协议版本
ssl_prefer_server_ciphers on;
location /welcome {
root html;
index index.html index.htm;
}
}
}
启动Nginx:
/user/local/nginx/sbin/nginx
重新载入Nginx参数
/user/local/nginx/sbin/nginx -s reload
重启Nginx
/user/local/nginx/sbin/nginx -s reopen
停止
/user/local/nginx/sbin/nginx -s stop
开启安全组和防火墙的443端口
阿里云默认开通了443端口
登录Linux服务器后,查看端口放通状态
# 查看防火墙放通的端口号
[root@XXX sbin]# firewall-cmd --list-ports
20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp
# 添加 443端口
[root@XXX sbin]# firewall-cmd --zone=public --add-port=443/tcp --permanent
success
# 刷新防火墙上刚配置好的参数
[root@XXX sbin]# firewall-cmd --reload
success
# 再次查看端口是否已经放通
[root@XXX sbin]# firewall-cmd --list-ports
20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 443/tcp
# 刷新Nginx参数
[root@XXX sbin]# ./nginx -s relaod
完成所有配置,此时可以通过https访问网站了。
Reference
SSL 证书(应用安全): https://yundun.console.aliyun.com/?spm=5176.12818093.ProductAndService–ali–widget-home-product-recent.dre0.408816d0GH3RYx&p=cas
[2]域名: https://dc.console.aliyun.com/next/index?spm=5176.12818093.ProductAndService–ali–widget-home-product-recent.dre3.408816d0GH3RYx#/domain/list/all-domain
原文始发于微信公众号(随笔闲谈):阿里云服务器Nginx配置SSL证书,实现HTTPS访问
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/251150.html