在Nginx上给托管在cloudflare上的域名部署acmesh脚本申请的SSL证书

前言

踩了大坑,通宵了,在Nginx上给托管在cloudflare上的域名部署acmesh脚本申请的SSL证书

连夜给网站加SSL,之前用的平台一键部署,这波自己手动配着实踩大坑啊

哎,终于体会到了半夜趁用户睡觉维护网站的感觉了

1.使用acme脚本申请SSL证书

acmesh是一个自动申请SSL证书的脚本,在github上开源

网址:acme.sh

官网步骤详细,一下简单总结

(一)

curl  https://get.acme.sh | sh -s email=[email protected]
source ~/.bashrc

(二)

acme.sh  --issue  -d 你的域名  --webroot  证书安装目录

你的域名填你要申请证书的域名
证书安装目录随便填一个你想要证书装到哪

(三)

acme.sh --install-cert -d 域名 \
--key-file       key  \
--fullchain-file pem \

key:想要.key文件生成的绝对路径,如/www/a/mydomain.key
pem:想要.pem文件生成的绝对路径,如/www/a/mydomain.pem

静待申请安装成功

2.配置nginx

我的服务器是ubuntu 20.04,安装nginx时候直接安装了ssl模块

请先用nginx -V查看是否有--with-http_ssl_module

下面是nginx配置文件模板:

server {
    listen 80;
    server_name 域名;
    return 302 https://$server_name$request_uri;
}

server {
    listen 443;
	ssl on;
    server_name 域名;
    ssl_certificate pem文件路径;
    ssl_certificate_key key文件路径;
    
    location / {
		root 填自己的
		index index.html
	}
}

重启nginx:

systemctl restart nginx

3.去cloudflare开启https访问

一定要选full,选flexible就会访问不上

在Nginx上给托管在cloudflare上的域名部署acmesh脚本申请的SSL证书_第1张图片
这是两者区别
在Nginx上给托管在cloudflare上的域名部署acmesh脚本申请的SSL证书_第2张图片

强制https
在Nginx上给托管在cloudflare上的域名部署acmesh脚本申请的SSL证书_第3张图片

你可能感兴趣的:(Linux运维,linux,ssl,nginx,ubuntu)