SSL 证书免费,自动续期的web服务器Caddy,Caddy2 实战

这篇具有很好参考价值的文章主要介绍了SSL 证书免费,自动续期的web服务器Caddy,Caddy2 实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Caddy 简介

Caddy官网

Caddy 是由go语言开发的web 服务器 ,和nginx 功能作用相同。但是区别在于caddy 没有很多的依赖,或者说是插件。并且 caddy 实现了 ssl 证书每三个月自动续期,ssl 证书免费 。这意味着 使用 caddy 作为web 服务器 不再有nginx 的 ssl 证书 到期且付费的困扰。

以上优点是我研究caddy的动力之一。

安装Caddy

centos7

yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy

查看caddy状态

systemctl status caddy

要启动caddy,需要建立一个root用户以外的账户,我这里新建的账户叫做caddy,以下为caddy的配置过程

建立一个用于存放网页文件的目录,如/var/www/html,命令如下:

mkdir /var/www
mkdir /var/www/html

建caddy用户

adduser -r -d /var/www/html -s /sbin/nologin caddy

建立caddy去加载配置文件的路径

mkdir /etc/caddy

建立一个空的caddy工作配置参数文件

touch /etc/caddy/Caddyfile

设置路径的访问权限

chown -R root:caddy /etc/caddy

创建用于存放ssl证书的路径

mkdir /etc/ssl/caddy

chown -R caddy:root /etc/ssl/caddy

chmod 0770 /etc/ssl/caddy

创建用于存放日志的路径

mkdir /var/log/caddy

chown -R caddy:root /var/log/caddy

最后再改一下/var/www/html 这个用于存放网页的路径权限

chown caddy:caddy /var/www/html

改一下配置文件里面的用户信息

查看caddy.service 文件位置

systemctl status caddy

查看 用户和组信息

cat /usr/lib/systemd/system/caddy.service

用户和组都是caddy就不用改了。

设置caddy进程开机自启

systemctl daemon-reload

systemctl enable caddy.service

现在还不能正常成功启动caddy呢,因为还没有配置网站参数信息。

配置网站信息

cd /etc/caddy/

vi /etc/caddy/Caddyfile

Caddyfile文件内容

www.xxx.com {
	# Set this path to your site's directory.
	root * /var/www/html
	
    #log /var/log/caddy/caddy.log

    # Email
    tls user@163.com    
 
	# Enable the static file server.
	file_server

	# Another common task is to set up a reverse proxy:
	# reverse_proxy localhost:8080
}

上传前端网页文件到 /var/www/html目录下

启动caddy服务

systemctl start caddy

查看服务启动状态

systemctl status caddy -l 

基本命令

查看caddy的帮助文档

caddy

Caddy后台服务运行

caddy start

将Caddyfile转化为JSON配置 或 查看 Caddyfile语法是否正确

caddy adapt

重启

systemctl daemon-reload

systemctl restart caddy.service

查看caddy的状态

systemctl status caddy.service

指定配置文件运行caddy

caddy run --config /etc/caddy/Caddyfile
caddy start --config /etc/caddy/Caddyfile

查看日志

 journalctl --no-pager -u caddy

Caddyfile 配置全量配置信息

(handle_info_log) {
	log {
		output file /var/log/caddy/info.log {
                   
                    roll_size 100MiB

                    roll_keep_for 30d
                
                }
                
                format console {

                  time_format wall

                  time_local
                
                }

		level INFO
             
	}
}

(handle_error_log) {
        log {
                output file /var/log/caddy/error.log {

                    roll_size 30MiB

                    roll_keep_for 30d

                }

                format console {

                  time_format wall

                  time_local

                }

                level ERROR

        }
}

(handle_errors) {
	handle_errors {

	     rewrite * /{err.status_code}.html

	     file_server
	}
}

www.xxx.com {

	encode gzip

	import handle_errors

    import handle_info_log
        
    import handle_error_log

    handle /b/* {

       root * /opt/web

       try_files {path} /b/index.html

         file_server

     }

      handle /a/* {

        root * /opt/web

        file_server

      }

	reverse_proxy /framework/* {
		header_down Access-Control-Allow-Origin *
		header_down Access-Control-Allow-Methods GET,POST,OPTIONS
		header_down Access-Control-Allow-Headers X-Requested-With
		to localhost:8081
	}

	reverse_proxy /example/* {
		to localhost:8081
	}

	@logsurl {
		path_regexp logsurl ^/log/(.*)$
	}
	rewrite @logsurl /framework/{http.regexp.logsurl.1}

	@upmsurl {
		path_regexp upmsurl ^/upms/(.*)$
	}
	rewrite @upmsurl /framework/{http.regexp.upmsurl.1}

	@systemsurl {
		path_regexp systemsurl ^/system/(.*)$
	}
	rewrite @systemsurl /framework/{http.regexp.systemsurl.1}

	@workflowsurl {
		path_regexp workflowsurl ^/workflow/(.*)$
	}
	rewrite @workflowsurl /framework/{http.regexp.workflowsurl.1}
}

www.xxx.com : 80 {
    ...
}

解释说明

客户端发送以下请求
https://www.xxx.com/framework/log/queryallLogs。

caddy 服务器会因为路径中的 https://www.xxx.com 开始 走下面这个代码块:

www.xxx.com {

}

接着 /framework/ 会匹配到 如下代码块 :

	reverse_proxy /framework/* {
		header_down Access-Control-Allow-Origin *
		header_down Access-Control-Allow-Methods GET,POST,OPTIONS
		header_down Access-Control-Allow-Headers X-Requested-With
		to localhost:8081
	}
	@logsurl {
		path_regexp logsurl ^/log/(.*)$
	}
	rewrite @logsurl /framework/{http.regexp.logsurl.1}

此时 reverse_proxy 反向代理 将 https://www.xxx.com/framework/代理成
https://localhost:8081;
那么 完整的路径地址 就是 https://localhost:8081/log/queryallLogs。
接着,caddy 发现 该路径的uri 是 以 /log/ 开头的,这时 路径重写指令rewrite 生效,最终路径变成 https://localhost:8081/framework/log/queryallLogs。
祝各位小伙伴学习愉快,欢迎交流。文章来源地址https://www.toymoban.com/news/detail-692072.html

到了这里,关于SSL 证书免费,自动续期的web服务器Caddy,Caddy2 实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • acme.sh自动配置免费SSL泛域名证书并续期(Aliyun + Debian + nginx)

    以前使用Certbot自动配置SSL证书,需要安装snap管理器再安装Certbot,期间还要去找AliDNS脚本,比较麻烦。如果不想如此,推荐使用acme.sh自动化脚本,更方便快捷。 1. 安装acme.sh 脚本会安装home目录下:~/.acme.sh/。同时会创建一个cronjob,每天检测证书,快过期自动更新。 2. 更换证

    2024年02月04日
    浏览(47)
  • 在Web服务器(IIS)上安装SSL证书并绑定网站

    以windows server 2016为例 一、安装中间证书 1.下载中间证书文件 如果是RSA加密算法类的,下载此处。 如果是ECC加密算法类的,下载此处。 2.安装 双击下载好的文件进行安装, 注意,安装过程中,存储位置要设”为本地计算机“,要勾选“选择将所有的证书都放入下列存存储(

    2024年02月07日
    浏览(64)
  • 群晖DSM下套件及系统网页服务器ssl证书自动更新

    : DSM ssl  证书 群晖下自建服务(alist3)和系统服务在外部网络访问需要加ssl安全证书来实现基础的传输保护。 申请证书和续期手动操作都还好,不算太麻烦,但是每个应用单独证书需要复制和重启,再配合服务重启一套下来就比较麻烦了,于是有了这篇文章和末尾的

    2024年02月10日
    浏览(75)
  • 【jellyfin】解决使用自定义域名和免费ssl证书安卓端无法访问服务器的问题

    前两天还发帖为了稳定选了个nas大厂。。12月15日就开始坑爹了 威联通这两天作妖,强制换了大陆地区的ddns域名,从xx.myqnapcloud.com换成了xx.mycloudnas.cn,导致以前的let’s encrpyt的证书无法使用了(因为域名变了) 我因为还是想用威联通云(怕路由器偶尔抽风导致ddns无法及时刷

    2024年02月19日
    浏览(98)
  • StartSSL免费SSL证书续期注意事项

    startssl的免费ssl证书有一年的有效期(包括登录startssl的用户登录证书和域名ssl证书)。上年申请的StartSSL的免费SSL证书快要过期了,需要renew。StartSSL证书的续期步骤和新申请证书的步骤差不多。请阅读本文并参考《全球唯一免费HTTPS证书颁发机构:StartSSL申请图文详细教程》

    2024年02月07日
    浏览(41)
  • 阿里云申请免费SSL证书的两种验证方式及配置服务器Tomcat升级HTTPS协议

    通用教程,其他服务商的免费 SSL 证书也差不多是这个流程。(至少腾讯云的操作步骤和本文是一致,嘻嘻!) 首先在阿里云上创建并申请 SSL 证书,之后选择 DNS 验证的方式,一种是手动配置解析地址进行验证,另一种是在服务器上放置一个验证文件进行验证。 手动 DNS 验证

    2024年02月10日
    浏览(96)
  • 每年的免费SSL证书,你们都是要去操作续期?

    如标题所问,大家的免费证书估计都是去阿里云免费拿的,但有效期是一年,每次到期都需要再去申请并且去替换自己服务器的证书。 不知道大家有没有了解FreeSSL,我近期发展这个网站 https://freessl.cn,如果你们都是个人站点,对证书没什么特别要求,可以考虑用他们家生成

    2024年02月08日
    浏览(45)
  • 34、springboot切换内嵌Web服务器(Tomcat服务器)与 生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS

    知识点1:springboot切换内嵌Web服务器(Tomcat服务器) 知识点2:生成SSL证书来把项目访路径从 HTTP 配置成 HTTPS spring-boot-starter-web 默认依赖 Tomcat 内置服务器 改为 Jetty 服务器 改为 Undertow 服务器 目的:把请求路径 http://xxxxx 改成 https://xxxxx 如图:原本普通的项目,启动后是http的

    2024年02月11日
    浏览(52)
  • 使用 Certbot 并设置自动续期 SSL 证书

    步骤: 安装 Certbot:使用命令安装 Certbot: 获取 SSL 证书:运行 Certbot 命令来获取并安装 SSL 证书。 示例命令,替换其中的域名和路径信息: 这将使用 Certbot 的 webroot 插件来进行验证,并为你的域名生成 SSL 证书。确保将 /path/to/your/website 替换为你网站的根目录路径, your-do

    2024年02月15日
    浏览(55)
  • Tomcat 服务器安装SSL证书

    Tomcat服务器安装SSL证书 Tomcat 支持 PFX 格式和 JKS 两种格式的证书,您可根据您 Tomcat 的版本择其中一种格式的证书安装到 Tomcat 上。 一、安装PFX 格式证书 1、准备好 PFX 格式的证书; 2、在 Tomcat 安装目录下新建 cert 目录,将证书文件拷贝到 cert 目录下。 3、打开 Tomcat conf serv

    2024年02月03日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包