文接上篇acme.sh使用Let’s Encrypt+Cloudflare API的方式申请SSL证书,这里继续讲一个简单的Nginx配置SSL和反代的流程,后续更多的要求均可以在此基础上进行扩展。
前置条件
- 域名已经解析至VPS IP(建议不开CDN,即Cloudflare小云朵为关闭/灰色)
- 已经通过acme.sh申请好域名的SSL证书
- 需要反代的服务已正常启动运行,假定端口为8080,并且通过http://ip:8080可以正常打开页面
安装Nginx
可参考Debian 11安装最新版本的Nginx
使用官方源版本或最新稳定版本均可,安装完成后先对nginx.conf进行修改:
nano /etc/nginx/nginx.conf
查看是否有下面一行
include /etc/nginx/sites-enabled/*;
有则使用使用#
号注释掉,然后保持退出并重载配置:
nginx -s reload
配置反代
满足前置条件3
,http://ip:8080可以正常打开页面的情况下,直接上配置:
server {
listen 80;
server_name aa.com; #替换为你的域名
if ($scheme = http ) {
return 301 https://$server_name$request_uri; #设置http跳转到https
}
}
server {
listen 443 ssl http2;
server_name aa.com; #替换为你的域名
ssl_certificate /root/cert/aa.com.cer; #替换为你的路径和域名
ssl_certificate_key /root/cert/aa.com.key;#替换为你的路径和域名
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:8080; #如果使用其他端口自行修改
proxy_http_version 1.1;
proxy_set_header Host $host;
}
}
可以本地新建文件后缀必须为.conf
,将以上内容粘贴进去并保存,上传至VPS的/etc/nginx/conf.d
目录
或者直接VPS上新建文件
nano /etc/nginx/conf.d/xxx.conf
使用shift + insert
插入配置,然后保存退出。
最后重载Nginx配置
nginx -s reload
最后用过域名访问服务,查看是否正常访问。
至此,一个最简单的acme.sh申请证书+Nginx反代网站的实例也就完成了,希望小伙伴们也能够成功!
而且由于证书是泛域名证书,如果要用其他二级域名反代新的服务也不用重新申请证书,只要在cf上将dns配置好,并新建配置文件将域名替换后,上传至/etc/nginx/conf.d
目录重载配置即可。
个人小贴士:
不建议一股脑将配置均写在nginx.conf一个文件中。
每个域名写入单的配置文件中,文件名可以是域名_端口_服务.conf
,可以根据个人习惯增减维度,配置情况一目了然。
配置文件均放入/etc/nginx/conf.d
文件夹中进行管理,如需迁移将此文件夹备份转移即可。
评论区