Question

J'ai configuré mon propre fournisseur d'identifiant ouvert sur mon serveur personnel et ajouté une redirection vers https dans mon fichier de configuration apache. Lorsque je n'utilise pas de connexion sécurisée (lorsque je désactive la redirection), je peux me connecter correctement, mais avec la redirection, je ne peux pas me connecter avec le message d'erreur suivant:

La connexion sous-jacente a été fermée: impossible d'établir une relation de confiance pour le canal sécurisé SSL / TLS.

Je suppose que c'est parce que j'utilise un certificat auto-signé.

Quelqu'un peut-il confirmer si le certificat auto-signé est le problème? Sinon, est-ce que quelqu'un a une idée du problème?

Était-ce utile?

La solution

Le principal avantage de l’utilisation de SSL pour votre URL OpenID est qu’elle offre à la partie utilisatrice un mécanisme lui permettant de déterminer si le DNS a été falsifié. Il est impossible pour la partie utilisatrice de dire si une URL OpenID avec un certificat auto-signé a été compromise.

L’utilisation de SSL sur l’URL du terminal de votre fournisseur présente d’autres avantages (plus facile d’établir des associations, pas d’écoute des données d’extension) qui resteraient valables si vous utilisiez un certificat auto-signé, mais j’envisageais qu'il en soit ainsi. secondaire.

Autres conseils

OpenID est conçu de manière transparente pour la redirection. Tant que les paires clé / valeur nécessaires sont préservées à chaque redirection, que ce soit par GET ou par POST, tout fonctionnera correctement.

La solution la plus simple pour assurer la compatibilité avec les consommateurs qui ne fonctionnent pas avec des certificats auto-signés consiste à utiliser un noeud final non chiffré qui redirige les messages checkid_immediate et checkid_setup . à un crypté.

Faire cela dans le code de votre serveur est plus facile qu'avec les redirections de serveur Web, car le premier peut plus facilement traiter les demandes POST, tout en conservant le code ensemble. De plus, vous pouvez utiliser le même point de terminaison pour gérer toutes les opérations OpenID, qu’il soit ou non servi sur SSL, à condition que les vérifications appropriées soient effectuées.

Par exemple, en PHP, la redirection peut être aussi simple que:

// Redirect OpenID authentication requests to https:// of same URL
// Assuming valid OpenID operation over GET
if (!isset(

OpenID est conçu de manière transparente pour la redirection. Tant que les paires clé / valeur nécessaires sont préservées à chaque redirection, que ce soit par GET ou par POST, tout fonctionnera correctement.

La solution la plus simple pour assurer la compatibilité avec les consommateurs qui ne fonctionnent pas avec des certificats auto-signés consiste à utiliser un noeud final non chiffré qui redirige les messages checkid_immediate et checkid_setup . à un crypté.

Faire cela dans le code de votre serveur est plus facile qu'avec les redirections de serveur Web, car le premier peut plus facilement traiter les demandes POST, tout en conservant le code ensemble. De plus, vous pouvez utiliser le même point de terminaison pour gérer toutes les opérations OpenID, qu’il soit ou non servi sur SSL, à condition que les vérifications appropriées soient effectuées.

Par exemple, en PHP, la redirection peut être aussi simple que:

<*>

Comme la valeur openid.return_to a été générée pour un noeud final HTTP simple, pour le consommateur, il ne s'agit que d'un serveur non chiffré. En supposant le bon fonctionnement d'OpenID 2.0 avec des sessions et des nonces, les informations transmises entre le consommateur et votre serveur ne doivent pas révéler d'informations exploitables. Les opérations exploitables entre votre navigateur et le serveur OpenID (surveillance du mot de passe ou piratage des cookies de session) s’effectuent via un canal crypté.

En plus d'éviter les intrusions, le fait d'effectuer des opérations d'authentification via SSL vous permet d'utiliser l'indicateur de cookie HTTP sécurisé . Cela ajoute une couche de protection supplémentaire pour les opérations checkid_immediate , si vous souhaitez l'autoriser.

SERVER['HTTPS']) && (

OpenID est conçu de manière transparente pour la redirection. Tant que les paires clé / valeur nécessaires sont préservées à chaque redirection, que ce soit par GET ou par POST, tout fonctionnera correctement.

La solution la plus simple pour assurer la compatibilité avec les consommateurs qui ne fonctionnent pas avec des certificats auto-signés consiste à utiliser un noeud final non chiffré qui redirige les messages checkid_immediate et checkid_setup . à un crypté.

Faire cela dans le code de votre serveur est plus facile qu'avec les redirections de serveur Web, car le premier peut plus facilement traiter les demandes POST, tout en conservant le code ensemble. De plus, vous pouvez utiliser le même point de terminaison pour gérer toutes les opérations OpenID, qu’il soit ou non servi sur SSL, à condition que les vérifications appropriées soient effectuées.

Par exemple, en PHP, la redirection peut être aussi simple que:

<*>

Comme la valeur openid.return_to a été générée pour un noeud final HTTP simple, pour le consommateur, il ne s'agit que d'un serveur non chiffré. En supposant le bon fonctionnement d'OpenID 2.0 avec des sessions et des nonces, les informations transmises entre le consommateur et votre serveur ne doivent pas révéler d'informations exploitables. Les opérations exploitables entre votre navigateur et le serveur OpenID (surveillance du mot de passe ou piratage des cookies de session) s’effectuent via un canal crypté.

En plus d'éviter les intrusions, le fait d'effectuer des opérations d'authentification via SSL vous permet d'utiliser l'indicateur de cookie HTTP sécurisé . Cela ajoute une couche de protection supplémentaire pour les opérations checkid_immediate , si vous souhaitez l'autoriser.

GET['openid_mode'] == 'checkid_immediate' ||

OpenID est conçu de manière transparente pour la redirection. Tant que les paires clé / valeur nécessaires sont préservées à chaque redirection, que ce soit par GET ou par POST, tout fonctionnera correctement.

La solution la plus simple pour assurer la compatibilité avec les consommateurs qui ne fonctionnent pas avec des certificats auto-signés consiste à utiliser un noeud final non chiffré qui redirige les messages checkid_immediate et checkid_setup . à un crypté.

Faire cela dans le code de votre serveur est plus facile qu'avec les redirections de serveur Web, car le premier peut plus facilement traiter les demandes POST, tout en conservant le code ensemble. De plus, vous pouvez utiliser le même point de terminaison pour gérer toutes les opérations OpenID, qu’il soit ou non servi sur SSL, à condition que les vérifications appropriées soient effectuées.

Par exemple, en PHP, la redirection peut être aussi simple que:

<*>

Comme la valeur openid.return_to a été générée pour un noeud final HTTP simple, pour le consommateur, il ne s'agit que d'un serveur non chiffré. En supposant le bon fonctionnement d'OpenID 2.0 avec des sessions et des nonces, les informations transmises entre le consommateur et votre serveur ne doivent pas révéler d'informations exploitables. Les opérations exploitables entre votre navigateur et le serveur OpenID (surveillance du mot de passe ou piratage des cookies de session) s’effectuent via un canal crypté.

En plus d'éviter les intrusions, le fait d'effectuer des opérations d'authentification via SSL vous permet d'utiliser l'indicateur de cookie HTTP sécurisé . Cela ajoute une couche de protection supplémentaire pour les opérations checkid_immediate , si vous souhaitez l'autoriser.

GET['openid_mode'] == 'checkid_setup')) http_redirect("https://{

OpenID est conçu de manière transparente pour la redirection. Tant que les paires clé / valeur nécessaires sont préservées à chaque redirection, que ce soit par GET ou par POST, tout fonctionnera correctement.

La solution la plus simple pour assurer la compatibilité avec les consommateurs qui ne fonctionnent pas avec des certificats auto-signés consiste à utiliser un noeud final non chiffré qui redirige les messages checkid_immediate et checkid_setup . à un crypté.

Faire cela dans le code de votre serveur est plus facile qu'avec les redirections de serveur Web, car le premier peut plus facilement traiter les demandes POST, tout en conservant le code ensemble. De plus, vous pouvez utiliser le même point de terminaison pour gérer toutes les opérations OpenID, qu’il soit ou non servi sur SSL, à condition que les vérifications appropriées soient effectuées.

Par exemple, en PHP, la redirection peut être aussi simple que:

<*>

Comme la valeur openid.return_to a été générée pour un noeud final HTTP simple, pour le consommateur, il ne s'agit que d'un serveur non chiffré. En supposant le bon fonctionnement d'OpenID 2.0 avec des sessions et des nonces, les informations transmises entre le consommateur et votre serveur ne doivent pas révéler d'informations exploitables. Les opérations exploitables entre votre navigateur et le serveur OpenID (surveillance du mot de passe ou piratage des cookies de session) s’effectuent via un canal crypté.

En plus d'éviter les intrusions, le fait d'effectuer des opérations d'authentification via SSL vous permet d'utiliser l'indicateur de cookie HTTP sécurisé . Cela ajoute une couche de protection supplémentaire pour les opérations checkid_immediate , si vous souhaitez l'autoriser.

SERVER['HTTP_HOST']}{

OpenID est conçu de manière transparente pour la redirection. Tant que les paires clé / valeur nécessaires sont préservées à chaque redirection, que ce soit par GET ou par POST, tout fonctionnera correctement.

La solution la plus simple pour assurer la compatibilité avec les consommateurs qui ne fonctionnent pas avec des certificats auto-signés consiste à utiliser un noeud final non chiffré qui redirige les messages checkid_immediate et checkid_setup . à un crypté.

Faire cela dans le code de votre serveur est plus facile qu'avec les redirections de serveur Web, car le premier peut plus facilement traiter les demandes POST, tout en conservant le code ensemble. De plus, vous pouvez utiliser le même point de terminaison pour gérer toutes les opérations OpenID, qu’il soit ou non servi sur SSL, à condition que les vérifications appropriées soient effectuées.

Par exemple, en PHP, la redirection peut être aussi simple que:

<*>

Comme la valeur openid.return_to a été générée pour un noeud final HTTP simple, pour le consommateur, il ne s'agit que d'un serveur non chiffré. En supposant le bon fonctionnement d'OpenID 2.0 avec des sessions et des nonces, les informations transmises entre le consommateur et votre serveur ne doivent pas révéler d'informations exploitables. Les opérations exploitables entre votre navigateur et le serveur OpenID (surveillance du mot de passe ou piratage des cookies de session) s’effectuent via un canal crypté.

En plus d'éviter les intrusions, le fait d'effectuer des opérations d'authentification via SSL vous permet d'utiliser l'indicateur de cookie HTTP sécurisé . Cela ajoute une couche de protection supplémentaire pour les opérations checkid_immediate , si vous souhaitez l'autoriser.

SERVER['REQUEST_URI']}");

Comme la valeur openid.return_to a été générée pour un noeud final HTTP simple, pour le consommateur, il ne s'agit que d'un serveur non chiffré. En supposant le bon fonctionnement d'OpenID 2.0 avec des sessions et des nonces, les informations transmises entre le consommateur et votre serveur ne doivent pas révéler d'informations exploitables. Les opérations exploitables entre votre navigateur et le serveur OpenID (surveillance du mot de passe ou piratage des cookies de session) s’effectuent via un canal crypté.

En plus d'éviter les intrusions, le fait d'effectuer des opérations d'authentification via SSL vous permet d'utiliser l'indicateur de cookie HTTP sécurisé . Cela ajoute une couche de protection supplémentaire pour les opérations checkid_immediate , si vous souhaitez l'autoriser.

(Avertissement: OpenID est nouveau pour moi, je peux donc me tromper ici.) La communication entre le consommateur Open ID (par exemple, StackOverflow) et le fournisseur Open ID (votre serveur) ne nécessite pas HTTPS. fonctionne aussi bien et en toute sécurité sur HTTP simple. Ce que vous devez faire est de configurer votre serveur pour basculer vers HTTPS uniquement lorsqu'il vous montre votre page de connexion. Dans ce cas, seul votre navigateur doit se préoccuper du certificat auto-signé. Vous pouvez importer le certificat sur votre PC et tout sera aussi sécurisé que, par exemple, le certificat délivré par Verisign.

Cela en a l'air. Le client de votre serveur OpenID ne fait pas confiance à l'autorité de certification racine.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top