Ich versuche Terraform zu verwenden, um ein selbstsigniertes Zertifikat zu erstellen, das intern in einer Test-/Entwicklungsumgebung verwendet werden kann.Terraform selbstsigniertes Zertifikat Openssl Verifikation schlägt fehl
Ich erstelle zuerst einen privaten CA-Schlüssel, selbst signiertes Zertifikat.
Dann erstelle ich eine Zertifikatsanforderung und einen privaten Schlüssel für einen internen Domänennamen, für den ich HTTPS aktivieren möchte.
Dann unterzeichne ich das Zertifikat. Hier ganze Terraforming manifest ich benutze:
resource "tls_private_key" "ca" {
algorithm = "ECDSA"
ecdsa_curve = "P384"
}
resource "tls_self_signed_cert" "ca" {
key_algorithm = "${tls_private_key.ca.algorithm}"
private_key_pem = "${tls_private_key.ca.private_key_pem}"
subject {
common_name = "Example CA"
organization = "Example, Ltd"
country = "GB"
}
validity_period_hours = 43800
is_ca_certificate = true
allowed_uses = [
"key_encipherment",
"digital_signature",
"server_auth",
"client_auth",
]
}
resource "tls_private_key" "registry" {
algorithm = "ECDSA"
ecdsa_curve = "P384"
}
resource "tls_cert_request" "registry" {
key_algorithm = "${tls_private_key.registry.algorithm}"
private_key_pem = "${tls_private_key.registry.private_key_pem}"
subject {
common_name = "registry.test.example.com"
organization = "Example, Ltd"
country = "GB"
}
dns_names = ["registry.test.example.com"]
}
resource "tls_locally_signed_cert" "registry" {
cert_request_pem = "${tls_cert_request.registry.cert_request_pem}"
ca_key_algorithm = "${tls_private_key.ca.algorithm}"
ca_private_key_pem = "${tls_private_key.ca.private_key_pem}"
ca_cert_pem = "${tls_self_signed_cert.ca.cert_pem}"
validity_period_hours = 43800
allowed_uses = [
"key_encipherment",
"digital_signature",
"server_auth",
"client_auth",
]
}
ich das Terraforming Manifest laufen. Dann habe ich die generierten Zertifikate aus der Statusdatei extrahiert und in Dateien gespeichert.
Ich habe versucht, das endgültige Zertifikat mit OpenSSL, um zu überprüfen, aber einen Fehler:
$ openssl verify -CAfile ca-cert.pem registry.pem
registry.pem: C = GB, ST = , L = , postalCode = , O = "Example, Ltd", OU = , CN = registry.example.com
error 20 at 0 depth lookup:unable to get local issuer certificate
Irgendwelche Ideen, was das Problem ist? Ich habe viel Zeit damit verbracht, das herauszufinden.
Grundsätzlich möchte ich dies verwenden, um HTTPS für eine private Docker-Registrierung in meiner Test/Dev-Umgebung zu aktivieren.