配置免费的HTTPS证书
0. 开放443端口
这是云服务主机商那边的管理的443端口对外开放
还要释放云服务本机上面的443端口 == 我写了个防火墙脚本你们可以直接拿来用
sh firewallUtil.sh open 端口号
sh firewallUtil.sh close 端口号
sh firewallUtil.sh check 端口号
sh firewallUtil.sh status 端口号
sh firewallUtil.sh list
firewallUtil脚本
#!/bin/bash
# 开启端口
openPort () {
if [ ! $1 ]; then
echo '请输入需要开启的端口,请检查'
exit 1
fi
portStatus=$(firewall-cmd --query-port="$1"/tcp)
if [ $portStatus = 'no' ]; then
sudo firewall-cmd --add-port=$1/tcp --permanent
firewall-cmd --reload
sleep 1s
echo '端口【$1】已成功开启'
else
echo "端口【$1】已开启,无需重复开启"
fi
}
# 关闭端口
closePort () {
if [ ! $1 ]; then
echo '请输入需要关闭的端口,请检查'
exit 1
fi
portStatus=$(firewall-cmd --query-port="$1"/tcp)
if [ $portStatus = 'yes' ]; then
firewall-cmd --permanent --remove-port=$1/tcp
firewall-cmd --reload
sleep 1s
echo '端口【$1】已成功关闭'
else
echo "端口【$1】已关闭,无需重复关闭"
fi
}
# 查看端口是否开启关闭
checkPort () {
if [ ! $1 ]; then
echo '请输入需要检查的端口,请检查'
exit 1
fi
portStatus=$(firewall-cmd --query-port="$1"/tcp)
echo "端口【$1】状态:$portStatus"
}
# 查看系统中开放的端口
listPort () {
openPortInfo=$( firewall-cmd --list-all | grep ports | awk 'NR==1{for(i=2;i<=NF;i++) print $i}' | sort -nk 1 -t '/')
echo "系统中对外开启的端口"
echo "$openPortInfo"
}
case $1 in
open)
openPort $2
;;
close)
closePort $2
;;
check|status)
checkPort $2
;;
list)
listPort
;;
*)
echo '参数错误:请输入第一个参数open|close|check|status|list 中的任何一个、第二个参数【可选】端口号'
esac
1. 进入https://freessl.cn/
2. 创建证书
将这里的值,配置到腾讯云(如果你的域名从阿里云买的则去阿里云那边配)DNS解析中
3. 配好后,点击验证,生成证书、以及公钥
【点击验证】等了一会一直没反应,如下图。则在一点一遍【点击验证,出现下图的第二张图】
将证书、密钥下载好,将其配到nginx上即可
4. Nginx配置
# 不同域名配置多个证书,可将这个节点复制粘贴一遍,改一下server_name ssl_certificate ssl_certificate_key即可
# server_name必须是你证书申请时是什么就填什么
server {
listen 443 ssl;
server_name test.linruchang.work;
ssl_certificate /www/server/nginx/httpsDoc/test.linruchang.work/full_chain.pem;
ssl_certificate_key /www/server/nginx/httpsDoc/test.linruchang.work/private.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 小米官网
location /xiaomi {
root /www/project;
}
}
# 所以http请求都重定向到https上
server {
listen 80;
index index.html index.htm index.jsp index.php;
error_page 400 404 413 /4xx.html;
error_page 500 502 503 504 /50x.html;
rewrite ^(.*)$ https://$host$1 permanent;
}
将这两个文件上传到Linux服务器