Caddy 2.x 配置Basic认证

Caddy 2.x 版本引入了一个新的命令行工具 caddy hash-password,它可以用来生成密码的哈希值。这个工具可以用在配置 basicauth 认证时生成密码。

1. 安装 Caddy

如果还没有安装,你可以从 Caddy官网 下载并安装。

2. 使用 caddy hash-password 命令

打开你的命令行工具,然后输入以下命令来生成密码哈希:

caddy hash-password

执行这个命令后会提示你输入密码,为了安全考虑,系统将不会显示你输入的密码,与passwd一样…

3. 生成密码

在提示符后输入你的密码。例如:

Enter Password: 输入你的密码

输入密码后,caddy hash-password 将输出密码的哈希值。这个哈希值是使用 bcrypt 算法生成的,可以直接用于 Caddyfile 中的 basic 认证。

同时也可以使用OpenSSL生成 MD5 密码 (但是不推荐用于生产环境)

openssl passwd -apr1

4. 配置 Caddyfile

将生成的哈希值复制并粘贴到你的 Caddyfile 中,替换相应的密码字段。例如:


    basicauth @group {
        mirrors $1a$13$ZhisIsGeneratedHash
    }

5.例子
例如你想要为用户名 admin 设置密码 mypassword,你可以参考下面的步骤操作:

运行 caddy hash-password

Enter Password: 输入mypassword

会输出类似这样的哈希值:$2a$14$Wmfsb3jZ6kvMf8G4vj4FhO5NtLgXGJ1y4Hj3iW6OZ/7iU6Ve4i06

将这个哈希值添加到你的 Caddyfile 中,下面是配置文件例子

@basicdir { # 定义一个名为 @basicdir 的匹配器,用于匹配路径以 /security/ 开头的请求
    path /security/*
}

basicauth @basicdir { # 对 @basicdir 匹配器匹配的路径应用 Basic 认证
    username hashed_password # hashed_password 是 bcrypt 加密后的字符串
}

注意事项

注意事项

使用 caddy hash-password 生成的哈希值是唯一的,每次生成的哈希都会不同,即使是相同的密码。

哈希值是不可逆的,这意味着你不能从哈希值恢复原始密码。

评论区
头像