Vault PKI Kubernetes the hard way v2 Root CA: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 9: Строка 9:
 
<BR>
 
<BR>
 
==Включить PKI для корневого сертификата==
 
==Включить PKI для корневого сертификата==
  +
По сути тут создается путь (endpoint!) который реализует функционал PKI - как бы говорим Vault-у что бы по определенному пути работал определенным образом
  +
<br>
  +
В целом значение path может быть любым, но удобно давать осознанные имена
 
<PRE>
 
<PRE>
 
vault \
 
vault \
Строка 21: Строка 24:
 
Success! Enabled the pki secrets engine at: k8s_pki_root_ca/
 
Success! Enabled the pki secrets engine at: k8s_pki_root_ca/
 
</PRE>
 
</PRE>
  +
 
==Проверить созданный endpoint==
 
==Проверить созданный endpoint==
 
<PRE>
 
<PRE>

Версия 10:56, 3 октября 2022


Создание Корневого СА (Root CA)

Эта страница - часть большой статьи про CA используемые в k8s: Vault_PKI_Kubernetes_the_hard_way_v2

Включить PKI для корневого сертификата

По сути тут создается путь (endpoint!) который реализует функционал PKI - как бы говорим Vault-у что бы по определенному пути работал определенным образом
В целом значение path может быть любым, но удобно давать осознанные имена

vault \
    secrets \
        enable \
            -path=k8s_pki_root_ca \
            -description="PKI k8s Root CA" \
            -max-lease-ttl="262800h" \
            pki
Success! Enabled the pki secrets engine at: k8s_pki_root_ca/

Проверить созданный endpoint

vault secrets list | grep k8s_pki
k8s_pki_root_ca/                                            pki          pki_8b6cae1e          PKI k8s Root CA

Создание корневого сертефиката (CA)

Конфигурация Vault

  • ВАЖНО: Тип определяет будет ли показан ключ от сертификата. В случае internal ключ показа не будет и сертификат можно будет использовать только в Vault
TYPE="exported"
#TYPE="internal"

vault write -format=json pki_root_ca/root/generate/${TYPE} \
    common_name="Root Certificate Authority for Home Network" \
    country="Ukraine" \
    locality="Kharkov" \
    street_address="Lui Pastera St. 322, app. 131" \
    postal_code="61172" \
    organization="Home Network" \
    ou="IT" \
    ttl="262800h" > pki-root-ca.json

Просмотр результата

Результат работы команды (длинный вывод пропущен):

cat pki-root-ca.json
{
  "request_id": "a73f7190-acff-a3da-4a73-32c41546984c",
  "lease_id": "",
  "lease_duration": 0,
  "renewable": false,
  "data": {
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIEdT29yaz ...
    "expiration": 2610802620,
    "issuing_ca": "-----BEGIN CERTIFICATE-----\nMIIEd29yazE ...
    "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpc ...
    "private_key_type": "rsa",
    "serial_number": "6c:90:eb:90:d4:5f:86:6d:d8:fb:f8:f8:a0:4d:07:f8:99:1e:62:02"
  },
  "warnings": null
}

Корневой сертефикат самоподписаный. Поля certificate и issuing_ca полностью совпадают.

Подготовка файлов с сертефикатом и ключем

cat pki-root-ca.json | jq -r .data.certificate > rootCA.pem
cat pki-root-ca.json | jq -r .data.issuing_ca > rootCA_issuing_ca.pem
cat pki-root-ca.json | jq -r .data.private_key > rootCA_private_key.pem

Просмотр в привычном формате

openssl  x509 -in rootCA.pem -text -noout

На что тут обратить внимание:

  • Время жизни - 30 лет (должно хватить)
        Validity
            Not Before: Oct  2 14:56:32 2022 GMT
            Not After : Sep 24 14:57:00 2052 GMT
  • Информация об "Удостоверяющем центре" - верная
        Subject: C = Ukraine, L = Kharkov, street = app. 131 + street = Lui Pastera St. 322, postalCode = 61172, O = Home Network, OU = IT, CN = Root Certificate Authority for Home Network v2
  • Назначение сертефиката - CA, это видно из полей
    • X509v3 Key Usage: critical Certificate Sign, CRL Sign
    • X509v3 Basic Constraints: critical CA:TRUE
        X509v3 extensions:
            X509v3 Key Usage: critical
                Certificate Sign, CRL Sign
            X509v3 Basic Constraints: critical
                CA:TRUE
            X509v3 Subject Key Identifier:
                02:F8:85:2B:75:F8:E1:1C:69:28:30:32:21:2D:86:71:AF:AB:EC:3C
            X509v3 Authority Key Identifier:
                keyid:02:F8:85:2B:75:F8:E1:1C:69:28:30:32:21:2D:86:71:AF:AB:EC:3C

URL для корневого CA

Публикуем URL’ы для корневого центра сертификации

vault \
  write \
    k8s_pki_root_ca/config/urls \
      issuing_certificates="http://vault.home:8200/v1/k8s_pki_root_ca/ca" \
      crl_distribution_points="http://vault.home:8200/v1/k8s_pki_root_ca/crl"
Success! Data written to: k8s_pki_root_ca/config/urls