J'essaie d'envoyer une demande de courbure à un serveur avec une adresse IP x.x.x.x. Il fait partie d'un système de surveillance de la santé. Sur le serveur, j'ai configuré des hôtes virtuels pour sous-domaines.Example.com sur le port 80 et 443. Pour le certificat SSL, j'utilise un certificat Wildcard * .Example.com que j'utilise sur ce serveur, ainsi que de nombreux autres serveurs.
Quand j'essaie de courburer à http://x.x.x.x
il obtient la réponse de manière appropriée. Mais quand je me borde à https://x.x.x.x
Cela donne l'erreur de certificat suivante:
curl: (51) SSL: Nom du sujet du certificat '* .example.com' ne correspond pas au nom d'hôte cible 'x.x.x.x'
Je sais que c'est parce que le certificat est spécifique au nom de domaine et j'essaie d'envoyer une demande à l'aide de l'adresse IP. Mais comme je l'ai dit, c'est une limitation que j'ai (surveillance de la santé de l'équilibreur de la charge de racks).
Y at-il un travail autour??
Je vais faire une nouvelle réponse, car cela va dans une direction très différente. En fait, cela ne répond pas à la question posée, mais c'est peut-être la direction que l'OP devrait être à la recherche.
La configuration habituelle lors de l'utilisation d'une balanceur de charge est que le certificat SSL ne vit pas du tout sur le serveur Web, mais plutôt que le SSL est remis à l'équilibreur de charge.
L'utilisateur final fait une demande HTTPS à l'équilibreur de charge. L'équilibreur de charge déballe la SSL et transmet la demande via http non chiffré sur le serveur Web, avec un en-tête qui indique au serveur Web que la demande d'origine a été cryptée. (Important pour l'intégration des URL dans la réponse et pour éviter de servir de contenu sécurisé sur http).
Vous pouvez utiliser le nom de domaine comme d'habitude, mais remplacer le résolveur comme suit:
curl -v --resolve subdomain.example.com:443:x.x.x.x https://subdomain.example.com/
Cela pourrait être gênant de maintenir beaucoup de tels mappages cependant. Vous préférez peut-être simplement ignorer le décalage de certificat:
curl --insecure https://subdomain.example.com/
Si vous voulez, vous pouvez utiliser --insecure --verbose
et analyser les messages pour vérifier que le certificat est pour le domaine attendu, mais c'est probablement plus de travail que d'utiliser --resolve