openssl - 如何在 Terraform 中为 .htpasswd 文件生成有效的密码哈希?

标签 openssl terraform bcrypt .htpasswd md5sum

如何为 Terraform 中的 .htpasswd 文件的给定密码生成有效的密码哈希?

含义:如何使用 Terraform 插件/模块执行以下命令:

echo "MYUSERNAME:$( openssl passwd -apr1 MYPASSWORD )" > .htpasswd

其他算法也可以。该线路只需接受基本身份验证即可。

什么不起作用:

我只是不想依赖本地安装的工具(即 htpasswd 或 openssl)。这将需要“local-exec”配置程序。但我认为没有办法...

最佳答案

我在本地测试了以下内容,它适用于 terraform 0.12

resource "random_password" "password" {
  length = 55
  special = true
  override_special = "_%@"
}


resource "local_file" "foo" {
    content     = random_password.password.result
    filename = "${path.module}/.htpasswd"
}

您将需要以下提供商:

 * provider.local: version = "~> 1.4"
 * provider.random: version = "~> 2.2"

运行 terraform apply 时,它会生成以下文件:

.htpassword 

这是它在上面的 htpassword 文件中生成的密码的示例

MlqXMGCYUpij0Du8ycWoVLkJurbP822R26HB

如果您需要对特定密码进行哈希处理,那么您可以执行以下操作:


variable "bcrypt-password" {
  default = "MyPassword"
}

output "bcrypt" {
  value = "${bcrypt(var.bcrypt-password,6)}"
}

希望这有帮助

关于openssl - 如何在 Terraform 中为 .htpasswd 文件生成有效的密码哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59037276/

相关文章:

Terraform JSON 需要嵌套在 Azure Vnet 对象中的 Azure 子网才能拥有 ID,但不允许对其进行设置

java - 带有 BCrypt 哈希的 AES 256。如何从数据库中查看用户密码?

ruby-on-rails - self 保存!产生参数错误 #<ArgumentError : wrong number of arguments (0 for 2)>

linux - 无法使用 make 安装 openssl1.1.0

Openssl Asn1parse 无法正确提取数据

linux - 在 PATH terraform 中设置路径

ruby-on-rails - 如何更改 Rails 4 has_secure_password 状态消息?

encryption - 如何检查解密是否成功?

ssl - 如何使用 OpenSSL 生成自签名 SSL 证书?

azure - Terraform azurerm_kubernetes_cluster 无效或未知 key : network_profile