首页 > 其他分享 >caddyserver step-ca 集成

caddyserver step-ca 集成

时间:2023-01-24 21:13:10浏览次数:57  
标签:acme ca step caddyserver https com

最近在学习caddy2 的一些新特性,以前大致看过step-ca 这个强大的证书管理工具,所以集成caddy+step-ca 的acme 进行测试下
因为acme 需要对于dns 进行校验,但是因为自己是本地测试,解决方法有:修改本地hosts 文件,后者配置自己的dns server ,对于
自己的dns server coredns 是一个很不错的选择(可以同时集成mysql 扩展,这样就可以灵活的处理dns 记录了)

参考集成图

 

 

 

集成运行说明

上图已经说明了,基于step-ca 启动自己的acme server ,然后就是caddyserver 的一些配置了,运行上我没有使用容器

  • step ca 环境准备
    下载软件包,具体参考自己的环境
    初始化(按照提示操作,选择标准本地运行模式)
 
step ca init 

启动step ca 服务

step-ca $(step path)/config/ca.json

客户端访问root ca (ca-url 就是上边的,需要使用https)

step ca bootstrap --ca-url [CA URL] --fingerprint [CA fingerprint]

安装本地root ca (方便测试,以及更新信息)

step certificate install $(step path)/certs/root_ca.crt

添加acme 功能(注意之后需要重启下step ca 服务,因为都是基于配置文件的)

step ca provisioner add acme --type ACME

添加测试hosts 文件

127.0.0.1 example.com
127.0.0.1 exampleappdemo.com
  • caddyserver 配置
    参考配置内容
 
{
  "apps": {
    "tls": {
      "automation": {
        "policies": [
          {
            "issuers": [
              {
                "ca": "https://localhost:9000/acme/acme/directory",
                "email": "[email protected]",
                "module": "acme",
                "trusted_roots_pem_files": [
                  "/Users/dalong/.step/certs/root_ca.crt"
                ]
              }
            ],
            "disable_ocsp_stapling": true
          }
        ]
      }
    },
    "http": {
      "servers": {
        "example": {
          "listen": [":2015"],
          "routes": [
            {
              "match": [
                {
                  "host": ["example.com"]
                }
              ],
              "handle": [
                {
                  "handler": "static_response",
                  "body": "Hello, world! from example.com"
                }
              ]
            },
            {
              "match": [
                {
                  "host": ["exampleappdemo.com"]
                }
              ],
              "handle": [
                {
                  "handler": "static_response",
                  "body": "Hello,world! from exampleappdemo.com"
                }
              ]
            }
          ]
        }
      }
    }
  }
}

启动caddyserver (可以按需配置自己的tls 存储路径,比如export XDG_DATA_HOME=$PWD/conf)

caddy  run 

通过admin api 添加配置

curl localhost:2019/load \
  -H "Content-Type: application/json" \
  -d @caddy.json
  • 自动证书获取效果

caddyserver 日志信息

 

 


证书文件

 

 

说明

以上是一个简单的测试集成,关于coredns 部分以上没有说明,实际在我们进行一些测试环境中就会需要了,同时以上关于step-ca 的部署是本地模式,也不适合远程访问,对于实际生产玩法官方也有文档说明可以参考

参考资料

https://smallstep.com/docs/tutorials/acme-protocol-acme-clients
https://caddyserver.com/docs/caddyfile/options
https://smallstep.com/docs/step-ca/acme-basics
https://caddyserver.com/docs/json/apps/tls/

标签:acme,ca,step,caddyserver,https,com
From: https://www.cnblogs.com/rongfengliang/p/17066382.html

相关文章

  • STEP-WISE温控系统
    本章节分析governor之一的step_wise。1、基本术语概念在介绍之前,先介绍几个术语概念来帮助大家理解:1.1trippoint可以理解为一个阈值吧,每一个温度区间的阈值可以理解......
  • CatLikeCoding Basic No.3
    因为后面的圆和环就是跑数学公式了所以偷懒了orzusingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingstaticUnityEngine.Mathf;......
  • canal系列~原理
    一说明canal本身是一个管道,binlog通过管道进入,然后处理,再从管道出去,binlog是在canal端进行过滤的.所以对于单实例多库来说是推送全部binlog的整个canal的解析流程......
  • 洛谷P3654 First Step题解
    这是一道暴力枚举。 大致题意:R行C列的棋盘要放下长度为K的线段,“#”表示无法放置,问有多少种放置方法。直接贴代码:#include<bits/stdc++.h>usingnamespacestd;i......
  • ScreenFlow.app 打开显示 you don't have permission to open the application 解决方
    问题:当打开screenflow时提示youdon'thavepermissiontoopentheapplication解决:在控制台执行如下命令sudoxattr-drcom.apple.quarantine/Applications/Sc......
  • 介绍一款 ABAP 代码搜索工具 RS_ABAP_SOURCE_SCAN 的使用方法
    @目录ABAP代码搜索工具:ABAP报表RS_ABAP_SOURCE_SCAN实际工作中的一个需求:找到SAPCRM产品主数据搜索实现里使用了OPENCURSOR关键字的准确位置笔者曾经写过一篇文......
  • cargo update failed
    https://blog.csdn.net/weixin_39420106/article/details/127345581?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTR......
  • JS数组对象 | 中文按照首字母排序sort()、localeCompare()
    一、数组//根据中文の首字母排序letarr=['上海','北京','广州','深圳']arr.sort((a,b)=>a.localeCompare(b))console.log(arr)//数组sort()方法是会改变原数组的,可......
  • el-input聚焦失效Autofocus processing was blocked because a document already has
    问题目前是想实现双击元素时,切换元素,显示出input框,输入新title,失去焦点再切换回去<div@dblclick="editTitle()"><spanv-if="draggable">{{title}}</span><el-input......
  • ORB-SLAM2: an Open-Source SLAM system for Monocular,Stereo and RGB-D Camera
    摘要本文提出ORB-SLAM2一个完整的SLAM系统,用于单目,双目以及RGB-D相机,包括地图重用,回环检测以及重定位能力。本系统工作在实时的标准CPU,在更宽泛的环境中,来自于手持的室内场......