非443端口部署证书 环境:自建的服务器。centos7系统,电信宽带有公网ip,使用了ddns,可以通过固定域名+端口访问。但是80/443端口被封,非443端口部署ssl证书办法
我的环境就是这个样子,然后现在已经更新了HTTPS。下面是步骤,从安装证书开始。
第一步宝塔申请证书
宝塔SSL面板申请,进入SSL管理:
宝塔面板 → 网站 → 对应网站 → SSL
选择 Let's Encrypt 或宝塔SSL
选择DNS验证方式:
在域名验证方式中选择 DNS验证
第二步域名解析
你的域名是通过CNAME指向DDNS服务(比如花生壳、阿里云解析等),在域名提供商新建解析域名示例:
主机记录:_acme-challenge
记录类型:TXT
记录值:这里填写宝塔面板给你的值(很重要!)
TTL:600(或默认)
线路类型:默认
这些数据在宝塔里申请证书时是有的
要注意,比如在腾讯云DNS中:
主机记录填:_acme-challenge.m
这样会自动变成:_acme-challenge.m.shee.cc
验证DNS是否生效,等待1-2分钟后,在服务器执行:
dig TXT _acme-challenge.m.shee.cc
如查显示未找到命令,就安装一下
yum install bind-utils -y
安装成功后,重新
dig TXT _acme-challenge.m.shee.cc
成功后,你进入SSL设置页面,直接验证就可以了。申请成功后保存使用证书。
第三步配置文件修改
开始设置你的网站,在网站配置里找到
listen 443 ssl;
因为你动态域名,是打不开80和443的,所以443那里要改成你要的端口,比如你可以改成8443。
listen 10000; # HTTP服务端口
listen 8443 ssl; # HTTPS服务端口(新修改的)
# listen 443 quic; # 这行已被注释掉
这样其实就可以了,使用http 就你网址后面加个10000(这是我现在用的端口)使用https网址后面就加上8443
但是你和我一样的情况,不是新站,以前一直用的是HTTP ,不可能在换个端口,还是需要原来的端口使用HTTPS那么就看下一步
第五步HTTP直接变成HTTPS
listen 10000; # HTTP服务端口
listen 8443 ssl; # HTTPS服务端口(新修改的)
# listen 443 quic; # 这行已被注释掉
上面删掉,替换成下面代码
listen 10000 ssl;
# listen 443 quic; # 可以注释或删除这行
找到
error_page 497
替换成
error_page 497
# 或者更明确的:
error_page 497
网址和端口改成你自己的
完成后的效果是 打开你带端口的http网址会自动跳到https。这样就可以了。
但是还有一个问题,你像我一样,我建了别的网站,他会把别的HTTP的网站变成HTTPS导致其他网站无法打开。正常http不受HSTS影响,那么就接着做一步
第六步只针对一个端口生效
修改成
server {
listen 10000 ssl; # 只保留HTTPS
server_name m.shee.cc;
# HSTS只对这个端口生效
add_header Strict-Transport-Security "max-age=31536000";