Configuration de l'authentification client-site
Configurez vos paramètres d'authentification pour le serveur VPN et les clients VPN. Les certificats sont gérés via IBM Cloud® Secrets Manager.
Création d'une autorisation de service à service IAM
Pour créer une autorisation IAM de service à service pour votre serveur VPN et IBM Cloud Secrets Manager, procédez comme suit :
Vous pouvez également configurer l'autorisation IAM de service à service sur la page de provisionnement du serveur VPN, ou utiliser le panneau latéral Modifier l' autorisation.
- Dans la console IBM Cloud, allez à la page Gérer les autorisations et cliquez sur Créer.
- Sélectionnez VPC Infrastructure Services dans le menu. Sélectionnez ensuite Ressource basée sur les attributs sélectionnés.
- Sélectionnez Type de ressource > Client VPN for VPC.
- Pour le service cible, sélectionnez Secrets Manager.
- Conservez l'option Toutes les ressources sélectionnée. Cochez ensuite la case SecretsReader.
- Cliquez sur Autoriser.
Gestion des certificats des serveurs et clients VPN
Importation d'un certificat dans Secrets Manager
La procédure suivante utilise OpenVPN easy-rsa pour générer les certificats du serveur VPN et du client, puis importe ces certificats sur Secrets Manager. Pour plus d'informations, voir le fichier README Easy-RSA 3 Quickstart.
-
Clonez le référentiel Easy-RSA 3 dans votre dossier local :
git clone https://github.com/OpenVPN/easy-rsa.git cd easy-rsa/easyrsa3
-
Créer une infrastructure à clé publique (PKI) et une autorité de certification (CA):
./easyrsa init-pki ./easyrsa build-ca nopass
Vérifiez que le certificat de l'autorité de certification est généré dans le chemin
./pki/ca.crt
. Comme décrit dans la section suivante, lors de l'importation des certificats du serveur ou du client dans Secrets Manager, le certificat utilisé pour signer d'autres certificats sera requis comme certificat intermédiaire. -
Générer un certificat de serveur VPN :
./easyrsa build-server-full vpn-server.vpn.ibm.com nopass
Vérifiez que la clé publique du serveur VPN est générée dans le chemin
./pki/issued/vpn-server.vpn.ibm.com.crt
et que la clé privée se trouve dans le chemin./pki/private/vpn-server.vpn.ibm.com.key
. -
Générer un certificat de client VPN :
./easyrsa build-client-full client1.vpn.ibm.com nopass
Vérifiez que la clé publique du client VPN est générée dans le chemin
./pki/issued/client1.vpn.ibm.com.crt
et que la clé privée se trouve dans le chemin./pki/private/client1.vpn.ibm.com.key
. -
Si vous devez créer d'autres certificats clients VPN, répétez l'étape 4.
Remarques importantes :
-
Dans l'exemple précédent, le serveur VPN et les certificats clients sont signés par la même autorité de certification. Pour utiliser des AC différentes pour signer le certificat client, copiez le dossier
easyrsa3
dans un nouveau chemin et suivez les étapes 2 et 4. -
Si vous disposez déjà du certificat de serveur VPN d'autres autorités de certification, assurez-vous que le certificat possède l'utilisation de clé étendue:
TLS Web Client Authentication
. Vous pouvez utiliser la commande suivante pour vérifier les informations de certificat en fonction du contenu du fichier de certificat codé:cat YOUR-CERTIFICATE-FILE | openssl x509 -noout -text
. -
Si le certificat est utilisé comme certificat de client VPN pour authentifier le client, vous devez télécharger le fichier de certificat et le fichier de certificat intermédiaire. Par exemple, si vous utilisez des certificats client différents pour authentifier des utilisateurs différents, assurez-vous que ces certificats sont signés par la même autorité de certification et que vous avez téléchargé l'un des certificats client (fichier de certificat et fichier de certificat intermédiaire uniquement) dans Secrets Manager.
Vous pouvez utiliser une chaîne d'autorité de certification pour regrouper les certificats (autorité de certification intermédiaire 1, autorité de certification intermédiaire 2 et autorité de certification racine) dans un fichier unique et les télécharger dans le fichier de certificat intermédiaire. Gardez également à l'esprit que vous pouvez créer plusieurs certificats client hors ligne à l'aide de la même autorité de certification sans avoir à télécharger les certificats dans Secrets Manager.
Importation de certificats de serveur VPN dans Secrets Manager
Pour importer des certificats de serveur VPN dans Secrets Manager, procédez comme suit :
-
Si vous ne disposez pas déjà d'une instance Secrets Manager, accédez à la page Secrets Manager. Complétez ensuite les informations et cliquez sur Créer pour créer une instance Secrets Manager.
Pour plus d'informations, voir Commande de certificats pour Secrets Manager.
-
Dans la console, cliquez sur l'icône de
Navigation > Liste des ressources > Sécurité
-
Dans la liste des services, sélectionnez votre instance de Secrets Manager.
-
Dans le tableau Secrets, cliquez sur Ajouter.
-
Cliquez sur Certificat importé, puis sur Suivant.
-
Procédez comme suit pour importer le certificat :
- Ajoutez un nom et une description pour facilement identifier votre secret.
- Sélectionnez le groupe de secrets que vous souhaitez affecter au secret.
- Facultatif : ajoutez des étiquettes pour vous aider à rechercher des secrets similaires dans votre instance.
- Facultatif : Ajoutez des métadonnées à votre secret ou à une version spécifique de votre secret.
- Cliquez sur Suivant et sélectionnez la tuile Importer un certificat.
- Cliquez sur Browse et sélectionnez
./pki/issued/vpn-server.vpn.ibm.com.crt
comme fichier de certificat. - Cliquez sur Browse et sélectionnez
./pki/private/vpn-server.vpn.ibm.com.key
comme clé privée du certificat. - Cliquez sur Browse et sélectionnez
./pki/ca.crt
comme certificat intermédiaire. - Cliquez sur Suivant.
- Examinez les détails de votre certificat et cliquez sur Ajouter.
Pour plus d'informations, voir Importation de vos certificats existants.
Remarques importantes :
-
Dans cet exemple, les certificats du serveur VPN et du client sont signés par la même autorité de certification, vous ne devez donc télécharger que le certificat du serveur VPN. Vous devez également utiliser le certificat comme certificat de serveur VPN et authentifier le client VPN. Si le certificat du serveur VPN et celui du client sont signés par des autorités de certification différentes, vous devez les télécharger séparément.
-
Si vous avez mis à jour le certificat dans Secrets Manager, le serveur VPN n'est pas au courant de la mise à jour du certificat. Vous devez réimporter le certificat avec un CRN différent, puis mettre à jour le serveur VPN avec le nouveau CRN du certificat.
-
Si le certificat est utilisé comme certificat de serveur VPN, vous devez télécharger le fichier de certificat, le fichier de clé privée et le fichier de certificat intermédiaire. Si le certificat est utilisé comme certificat de client VPN pour authentifier le client, vous devez télécharger le fichier de certificat et le fichier de certificat intermédiaire.
Vous pouvez utiliser une chaîne d'autorité de certification pour regrouper les certificats (autorité de certification intermédiaire 1, autorité de certification intermédiaire 2 et autorité de certification racine) dans un fichier unique et les télécharger dans le fichier de certificat intermédiaire.
Commande d'un certificat public à l'aide de Secrets Manager
Vous pouvez utiliser Secrets Manager pour commander un certificat SSL/TLS public comme certificat de serveur VPN. Etant donné que le certificat racine de l'autorité de certification publique n'est pas stocké dans Secrets Manager, Secrets Manager
stocke uniquement les certificats intermédiaires. Vous avez besoin des certificats racine de Let's Encrypt, sauvegardés en tant que fichier .pem
. Les deux fichiers dont vous avez besoin se trouvent dans https://letsencrypt.org/certs/lets-encrypt-r3.pem et https://letsencrypt.org/certs/isrgrootx1.pem. Ces fichiers
ont été concaténés pour votre commodité; toutefois, pour des raisons de sécurité, il est recommandé de télécharger et de concaténer votre propre certificat racine dans un fichier. En outre, lorsque vous téléchargez et mettez à jour le profil
du client VPN, utilisez ce certificat racine pour remplacer la section <ca>
dans le profil.
Pour plus d'informations sur la chaîne de certificats Let's Encrypt, voir https://letsencrypt.org/certificates/.
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----
Les certificats commandés sont des certificats SSL/TLS publics et ne doivent être utilisés qu'en tant que certificat de serveur VPN. Vous ne pouvez pas utiliser les certificats commandés pour authentifier les clients VPN pour les raisons suivantes :
- N'importe qui peut commander un nouveau certificat auprès d'une autorité de certification publique. Toute personne peut réussir l'authentification si vous utilisez des certificats SSL/TLS publics pour authentifier votre client VPN.
- Vous ne pouvez pas créer de liste de révocation de certificats (CRL) pour révoquer un certificat de client VPN avec une autorité de certification publique.
Vous devez créer votre propre autorité de certification et importer le certificat d'autorité de certification dans Secrets Manager pour authentifier votre client VPN.
Utilisation d'un certificat privé
Vous pouvez utiliser un certificat privé Secrets Manager sur votre serveur VPN. Passez en revue les remarques importantes suivantes lorsque vous effectuez cette opération:
-
Toutes les autorités de certification d'une chaîne d'autorité de certification doivent être contenues dans une instance Secrets Manager. Vous devez également créer l'autorité de certification racine dans Secrets Manager. Lorsque vous sélectionnez une autorité de certification intermédiaire, les options suivantes sont requises pour vous assurer que chaque autorité de certification peut être trouvée lors de la vérification de la chaîne de l'autorité de certification d'un certificat privé dans votre serveur VPN:
- Dans la section Type, vous devez sélectionner Signature interne.
- Dans la section Type, vous devez activer le commutateur Encode URL lorsque vous créez une autorité de certification pour encoder l' URL certificat émetteur dans les certificats d'entité finale. Cela ne fonctionne pas si vous activez le commutateur Encode URL après avoir créé l'autorité de certification.
-
Le nombre maximal d'autorités de certification dans une chaîne d'autorités de certification de certificat privé est de 11 (une autorité de certification racine et 10 autorités de certification intermédiaires au maximum).
-
Dans la section Liste de révocation de certificat, activez les commutateurs Génération de liste de révocation de certificat et Points de distribution de liste de révocation de certificat si vous souhaitez utiliser la liste de révocation de certificat de l'autorité de certification d'un certificat privé. Un certificat révoqué n'est plus considéré comme digne de confiance par les applications au bout d'une heure.
-
La liste de révocation de certificat de l'autorité de certification ne fonctionne que si vous ne téléchargez pas de liste de révocation de certificat lorsque vous créez un serveur VPN. Vous n'avez pas besoin d'activer une CRL d'autorité de certification si la CRL du serveur VPN est déjà téléchargée.
-
Lors de la création d'un modèle pour une autorité de certification intermédiaire, dans la section Rôles de certificat:
- Cochez la case Utiliser des certificats pour le serveur si l'autorité de certification créée signe le certificat serveur pour le serveur VPN.
- Cochez la case Utiliser des certificats pour le client si l'autorité de certification créée signe le certificat client pour le serveur VPN.
- Cochez les cases Utiliser les certificats pour le serveur et Utiliser les certificats pour le client si l'autorité de certification créée signe les certificats serveur et client pour le serveur VPN.
-
Assurez-vous que chaque autorité de certification possède un nom commun unique dans la chaîne d'autorité de certification lors de sa création dans l'instance d' Secrets Manager.
Pour plus d'informations, voir Création de certificats privés dans la documentation Secrets Manager.
Localisation du CRN de certificat
Lorsque vous configurez l'authentification pour un serveur VPN client à site pendant le provisionnement à l'aide de l'interface utilisateur, vous pouvez choisir de spécifier le Secrets Manager et le certificat SSL, ou le CRN du certificat. Vous pouvez faire cela si vous ne pouvez pas voir le site Secrets Manager dans le menu, ce qui signifie que vous n'avez pas accès à l'instance Secrets Manager. N'oubliez pas que vous devez entrer le CRN si vous utilisez l'API pour créer un serveur VPN client à site.
Pour obtenir le CRN, vous devez avoir l'autorisation d'accéder à l'instance Secrets Manager.
Pour rechercher le CRN d'un certificat, procédez comme suit :
- Dans Console IBM Cloud, accédez à Menu de navigation icône
> Liste de ressources * *.
- Cliquez pour développer la rubrique Sécurité, puis sélectionnez le site Secrets Manager pour lequel vous souhaitez trouver le CRN.
- Sélectionnez n'importe où dans la ligne de la table du certificat pour ouvrir le panneau latéral des détails du certificat. Le CRN de certificat est répertorié dans le panneau latéral.
Configuration des ID utilisateur et des codes d'accès
Pour configurer l'authentification pour les utilisateurs du client VPN, procédez comme suit:
-
L'administrateur VPN invite l'utilisateur du client VPN au compte sur lequel réside le serveur VPN.
-
L'administrateur VPN affecte à l'utilisateur du client VPN un droit IAM. Ce droit permet à cet utilisateur de se connecter au serveur VPN. Pour plus d'informations, voir Création d'un groupe d'accès IAM et octroi du rôle de connexion au serveur VPN.
-
L'utilisateur du client VPN ouvre le site Web suivant afin de générer un code d'accès pour son ID utilisateur :
https://iam.cloud.ibm.com/identity/passcode
-
L'utilisateur du client VPN entre le code d'accès sur son client openVPN et démarre la connexion au serveur VPN. Pour plus d'informations, voir Configuration d'un environnement VPN client et connexion à un serveur VPN.