Falta la clave privada de la solicitud intermedia de Hashicorp Vault PKI

Falta la clave privada de la solicitud intermedia de Hashicorp Vault PKI

Intento configurar alguna estructura PKI, pero cuando solicito una CSR intermedia desde la bóveda, no se devuelve ninguna clave privada. Ni enTerraformardonde intento implementarlo, ni a través de la API.

Lo intenté:

  1. La APIhttps://www.vaultproject.io/api/secret/pki/index.html#sample-payload-2

    y obtenga solo el CSR:

    bash
    curl \
        --header "X-Vault-Token: s.123456789abcdef" \
        --request POST \
        --data @example.json \
        http://vault.example.com:8200/v1/pki/intermediate/generate/internal
    

    Y reciba el siguiente JSON:

    {
      "request_id": "e47966f5-6783-90d6-2d46-71c54ce05749",
      "lease_id": "",
      "renewable": false,
      "lease_duration": 0,
      "data": {
        "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICjDCCAXQCAQAwGjEYMBYGA1UEAxMPd3d3LmV4YW1wbGUuY29tMIIBIjANBgkq\nhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzDpyCY0LRTuUFMepJsWiIqUBhzyOMgxZ\nUFuBln77+nHeDEME4sSymkP+QJ9X4Baah7K3K2/v2TwZHHErw22VHEBy9saR4xZw\nkw8o9uhYGeqC9jBaqp2taQUN42IVp0w0Gmo/2uutl8ryJMXb2RfYn1RX/20bZ0ti\nCe0y/FNCW4M/DoUZYLF/8pXnVIdtZZAGJWavtpyxj4tWFSVvV6IKXYXY80iInnY6\nUQ0UZiL+dhbYEymcchEMtTT2C0ggXBIdV/zO9S/WiaQ5cPg3Tpkf4Fv5C+lTaAkQ\nKeLlnm9OcShtnZe/mw0lug7bSOuy5HClYJi/Ibz1YFZU0I7IC2VhWQIDAQABoC0w\nKwYJKoZIhvcNAQkOMR4wHDAaBgNVHREEEzARgg93d3cuZXhhbXBsZS5jb20wDQYJ\nKoZIhvcNAQELBQADggEBAFnGtTa4Yi2S/SLORWr80Q5/co7KXErCOdN0SvbcuNWO\nyYisHCLCUXM0zwqZHxRuwZY7Z8SZIeLkeyc6wuDrqUahlUXMTaU8XUISyPZsCHKV\ngNdSaDBeMx8sxBiQxbOznxHduMwLZZ2dAv6TAcbcXd4HFqhuXcqKYtxRz8la0PS/\nZsDCQoZGeqKozd3jc7a0ya8TKFPrvzkWIr1IbNT8Bg/66S5fmMsn7L80JLsRoXn6\nS6ZY/82OFnLqx2U5i9ayec7JM3I2DkERcJRKF3XnnS59tiN5G7WVPrb4/tPPFNsy\n7S2NTf9F8CsS+alg4CEka6p/r+oNGHb1GATkKVjLiek=\n-----END CERTIFICATE REQUEST-----"
      },
      "wrap_info": null,
      "warnings": null,
      "auth": null
    }
    
  2. Terraformarhttps://www.terraform.io/docs/providers/vault/r/pki_secret_backend_intermediate_cert_request.html

    resource "vault_pki_secret_backend_intermediate_cert_request" "pki_int_request" {
      depends_on = [ "vault_pki_secret_backend_config_ca.pki_root_config" ]
    
      backend = "${vault_mount.pki_root.path}"
    
      type = "internal"
      common_name = "example.com"
    }
    
    resource "local_file" "inter_key" {
        depends_on = [ "vault_pki_secret_backend_intermediate_cert_request.pki_int_request" ]
    
        content  = "${vault_pki_secret_backend_intermediate_cert_request.pki_int_request.private_key}"
        filename = "${path.module}/certs/int_ca.key"
    }
    

Donde acabo de obtener un archivo vacío.
Obviamente me estoy perdiendo algo y estaría encantado de recibir algún consejo.

Respuesta1

Creo que el código de ejemplo de vaultproject.io y la respuesta para "Generar intermedio" entran en conflicto con su propia documentación.

Su documentación del parámetro "tipo" dice que debe especificar "exportado" si desea que devuelva la clave privada e "interno" si desea que Vault proteja para siempre la clave privada.

Su llamada API de ejemplo parece especificar "interno", pero su respuesta de ejemplo se parece a lo que esperaría de "exportado", no "interno".

información relacionada