4.6. Ajout des clés pour secureboot

Pour utiliser KMM Kernel Module Management (KMM) afin de signer les modules du noyau, un certificat et une clé privée sont nécessaires. Pour savoir comment les créer, voir Générer une paire de clés publique et privée.

Pour plus d'informations sur l'extraction de la paire de clés publique et privée, voir Signer les modules du noyau avec la clé privée. Utilisez les étapes 1 à 4 pour extraire les clés dans des fichiers.

Procédure

  1. Créez le fichier sb_cert.cer qui contient le certificat et le fichier sb_cert.priv qui contient la clé privée :

    $ openssl req -x509 -new -nodes -utf8 -sha256 -days 36500 -batch -config configuration_file.config -outform DER -out my_signing_key_pub.der -keyout my_signing_key.priv
  2. Ajoutez les fichiers en utilisant l'une des méthodes suivantes :

    • Ajouter directement les fichiers en tant que secrets:

      oc create secret generic my-signing-key --from-file=key=<my_signing_key.priv>
      oc create secret generic my-signing-key-pub --from-file=key=<my_signing_key_pub.der>
    • Ajouter les fichiers en les encodant en base64 :

      cat sb_cert.priv | base64 -w 0 > my_signing_key2.base64
      cat sb_cert.cer | base64 -w 0 > my_signing_key_pub.base64
  3. Ajouter le texte encodé à un fichier YAML :

    apiVersion: v1
    kind: Secret
    metadata:
      name: my-signing-key-pub
      namespace: default 1
    type: Opaque
    data:
      cert: <base64_encoded_secureboot_public_key>
    
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: my-signing-key
      namespace: default 2
    type: Opaque
    data:
      key: <base64_encoded_secureboot_private_key>
    1 2
    namespace - Remplacer default par un espace de noms valide.
  4. Appliquer le fichier YAML :

    $ oc apply -f <yaml_filename>

4.6.1. Vérification des clés

Après avoir ajouté les clés, vous devez les vérifier pour vous assurer qu'elles sont correctement réglées.

Procédure

  1. Vérifiez que le secret de la clé publique est correctement défini :

    $ oc get secret -o yaml <certificate secret name> | awk '/cert/{print $2; exit}' | base64 -d  | openssl x509 -inform der -text

    Le certificat devrait s'afficher avec un numéro de série, un émetteur, un sujet, etc.

  2. Vérifiez que le secret de la clé privée est correctement défini :

    $ oc get secret -o yaml <clé privée nom secret> | awk '/key/{print $2 ; exit}' | base64 -d

    Cela devrait permettre d'afficher la clé contenue dans les lignes -----BEGIN PRIVATE KEY----- et -----END PRIVATE KEY-----.