Swisslinux.org

− Le carrefour GNU/Linux en Suisse −

 

Langue

 

Le Forum

Vous n'êtes pas identifié.

  • Index
  •  » Ubuntu
  •  » HTTPS Serveur signé par un Root CA spécifique

#1 10 Feb 2010 11:40:35

tcantin
Apôtre du libre
Lieu: Remaufens (FR)
Date d'inscription: 10 Aug 2005
Messages: 53

HTTPS Serveur signé par un Root CA spécifique

Bonjour,

après bien des recherche googlelisée, je ne trouve toujours pas mon bonheur.

J'ai installé un serveur HTTP sur un Ubuntu Server. Jusque là, tout va bien.
J'ai installé OpenSSL pour faire du HTTPS. Jusque là, tout va bien.

Mes clients HTTPS sont spécial, ce sont des téléphones. Il ne reconnaitrons que les serveur signé par une authorité (CA) bien précise, celle du contructeur.

J'ai donc installé le certificat root fournie par le constructeur dans mon répertoir SSL avec les lien et tout, et tout... Jusque là, tout va bien.

Maintenant que je veux signé mon server, je trouve mille et une aide pour créer un certificat "auto-signé". Mais rien pour faire un certificat à mon serveur en utilisant ce fameux certificat root de mon constructeur.

Quelqu'un aurais une idée? Merci d'avance.


En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Devise Shadoks)

Hors ligne

 

#2 10 Feb 2010 11:48:36

Tengu
Gourou(e) du libre
Lieu: La Tour-de-Peilz
Date d'inscription: 17 Nov 2004
Messages: 493
Site web

Re: HTTPS Serveur signé par un Root CA spécifique

Hello,

en fait, pour faire signer ton certificat, il faut le soumettre au constructeur du téléphone, de manière à ce qu'il te le signe LUI avec son certificat.
Autant dire que tu vas certainement t'amuser avec leur service client, leur support etc.

En gros, ce que tu dois faire :

- générer une clef privée pour ton serveur
- générer un CSR (Certificate Signing Request) pour le nom de domaine que tu veux
- soumettre le CSR à l'autorité (dans ton cas, le constructeur...)
- installer le certificat qu'ils auront signé dans ton apache

Si jamais, j'ai ce petit lien dans les signets : http://security.ncsa.uiuc.edu/research/ … penssl.php
Je m'y réfère toujours pour manipuler les certificats SSL, de manière à checker les données dans les CSR qu'on soumet aux autorités..

Bonne chance!

A+

C.


Science sans conscience n'est que ruine de l'âme

https://twitter.com/swisstengu (compte twitter)
https://blog.tengu.ch/ (un blog parmis tant d'autres)

Hors ligne

 

#3 10 Feb 2010 11:53:52

tcantin
Apôtre du libre
Lieu: Remaufens (FR)
Date d'inscription: 10 Aug 2005
Messages: 53

Re: HTTPS Serveur signé par un Root CA spécifique

merci du lien.

sur le principe, j'ai bien compris.
J'ai travaillé chez le constructeur en question et il n'y a nul pas un endroit où je peux envoyer mon certificat à signé.

Le constructeur fournit avec le code des téléphones son certificat Root, un fichier PEM. Ne faudrai-t-il donc pas utiliser ce dernier pour signé mon serveur? Ou le placer de manière à ce qu'il soit reconnu par mes équipements?

Dernière modification par tcantin (10 Feb 2010 11:58:55)


En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Devise Shadoks)

Hors ligne

 

#4 10 Feb 2010 12:17:13

Tengu
Gourou(e) du libre
Lieu: La Tour-de-Peilz
Date d'inscription: 17 Nov 2004
Messages: 493
Site web

Re: HTTPS Serveur signé par un Root CA spécifique

hmm, si tu as le root direct, tente avec ceci :

openssl req -x509 -days 365 -in certificate.csr -key CA_ROOT.pem -out hostcert.pem

ça devrait aller, je pense. C'est une des commandes du site que je t'ai linké tantôt wink


Science sans conscience n'est que ruine de l'âme

https://twitter.com/swisstengu (compte twitter)
https://blog.tengu.ch/ (un blog parmis tant d'autres)

Hors ligne

 

#5 10 Feb 2010 14:01:34

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: HTTPS Serveur signé par un Root CA spécifique

Hello,

  Plutôt que de spéculer sur la nature du root.pem, peux-tu donner plus de détails sur le constructeur en question, et le scénario HTTPS utilisé ? parce que ce serait contraire au bon sens que le constructeur fournisse directement une clef privée pour la racine de confiance du client web du téléphone.

  Est-tu sûr qu'on parle bien de la racine de confiance HTTPS du client (en général il y a une liste d'autorités classiques pour ça) ou de la racine de confiance pour la signature du code exécutable ? (La ça a un sens d'avoir un certificat global au constructeur)

  Tu peux inspecter à l'oeil le format .pem: Il peut contenir des blocs ---BEGIN/END CERTIFICATE---, qui contiennent une clef publique signée, des blocs ---BEGIN/END CERTIFICATE REQUEST---, qui contiennent une clef publique non signée, et ---BEGIN/END RSA PRIVATE KEY--- qui contiennent une clef privée. Il peut aussi contenir du texte libre en dehors des blocs, en général une représentation user-friendly du contenu.

  Tu peux examiner le contenu des blocs avec openssl, respectivement pour une clef publique ou privée:

Code:

openssl x509 -noout -text <fichier.pem
openssl rsa -noout -text <fichier.pem

Pour nous aider a y voir plus clair tu pourrais coller ici le détail de la clef publique, en principe ce n'est pas confidentiel. (Tu peux aussi coller les champs modulus et publicExponent de la clef privée, ou vérifier qu'ils correspondent ou pas à la clef publique)

Je peux t'indiquer comment créer un certificat signé par le root.pem s'il contient bien une clef privée, mais je doute que ce soit le cas, ce serait complètement inconscient de la part du constructeur de faire ça. (Sauf si tu travailles directement avec et qu'ils te font totalement confiance)

Hors ligne

 

#6 10 Feb 2010 16:22:00

tcantin
Apôtre du libre
Lieu: Remaufens (FR)
Date d'inscription: 10 Aug 2005
Messages: 53

Re: HTTPS Serveur signé par un Root CA spécifique

effectivement, il s'agit de la clef public du constructeur.

Le scénario est le suivant:
J'install des téléphones IP qui ont la particularité de télécharger leur firmware (en cas de mise à jour) ainsi que la possibilité de faire un backup/restore de leur configuration personnelle. Tout cela se faire en HTTP ou HTTPS (c'est le HTTPS qui m'intéresse).

Pour que le téléchargement des fichiers se fasse de manière sécurisé à un client reconnu (le téléphone du constructeur), il faut installer la clef sur mon serveur HTTPS afin de crypter les données qui seront par la suite décrypter par le téléphone qui contient lui, la clef privée (si j'ai bien compris le principe des ces clefs).

Le fichier PEM fournit par le contructeur est donc une clef qui contient bien le bloc ---BEGIN/END CERTIFICATE---.
Dans tout cela, il y a églement l'aspect "reconnaissance du client HTTPS" par le paramètre 'SSLVerifyClient require'

Donc, comment crée une clef pour mon serveur ainsi qu'installer cette clef public du constructeur dans mon OpenSSL.
J'ai suivi ce tutorial: http://gagravarr.org/writing/openssl-ce … ers.shtml, mais sans effet.


En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Devise Shadoks)

Hors ligne

 

#7 11 Feb 2010 00:37:06

BOFH
Admin
Lieu: Ecublens, VD
Date d'inscription: 03 Feb 2005
Messages: 862
Site web

Re: HTTPS Serveur signé par un Root CA spécifique

Hello,

  Alors, ce que tu decris (clef privee sur le client, et publique sur le serveur) est utilise par SSL uniquement pour authentifier le client, et est optionnel. Le chiffrement  utilise un algo symetrique, derivee avec l'authentification du serveur, qui est elle obligatoire. Les deux sens d'authentification sont completement separes.

  Pour l'authentification client, tu ne precises pas quel serveur http tu utilises, mais avec Apache c'est la directive SSLCACertificateFile qui sert a designer le certificat racine (ton root.pem).

  Pour l'auth serveur, il faudrait savoir quelles autorites sont reconnues par le client SSL du telephone. Tu devras obtenir un certificat signe par une de ces autorites. Si ton constructeur ne propose aucune interfac pour soumettre des demandes de signature, j'imagine que c'est parce que les telephones reconnaissent deja les autorites courantes (verisign, thawte, etc..) et que leur root.pem ne sert qu'a l'auth du client.

  C'est un peu plus clair ?

Hors ligne

 

#8 11 Feb 2010 08:00:13

tcantin
Apôtre du libre
Lieu: Remaufens (FR)
Date d'inscription: 10 Aug 2005
Messages: 53

Re: HTTPS Serveur signé par un Root CA spécifique

Merci BOFH
c'est un peu plus clair en effet.

J'ai donc testé tout ça avec la directive SSLCACertificateFile. sans grand succès.

je suis tombé sur un document. Il contient quelque chose comme ça:

For HTTPS the phones require a strong authentication of the configuration server based on a digital certificate. The digital certificate of the server must be signed by an Avaya root certificate, which is also stored in the firmware of the phones. If the phones could successfully verify the digital certificate of the configuration server, they establish the HTTPS connection and download the configuration file.

Donc je reviens toujours à me demander comment signé le certificat de mon server avec ce fameux certificat Root fournit par le constructeur.

Dernière modification par tcantin (11 Feb 2010 10:18:05)


En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Devise Shadoks)

Hors ligne

 

#9 11 Feb 2010 23:18:26

st-bernard
Citoyen(ne)
Lieu: Fully
Date d'inscription: 28 Aug 2007
Messages: 22

Re: HTTPS Serveur signé par un Root CA spécifique

Hello,

Je ne suis pas un expert, mais on ne peut signer un certificat qu'avec une clé privée. Donc dans ce cas la clé publique du constructeur ne te sers à rien. Une clé privée étant par définition personnelle, je doute que le constructeur te fournisse cette clé. C'est donc au constructeur de te fournir une clé signée ou de répondre au CSR (Certificate Signing Request) comme expliqué dans les messages plus haut.

Bonne soirée.

Hors ligne

 

#10 12 Feb 2010 08:57:23

tcantin
Apôtre du libre
Lieu: Remaufens (FR)
Date d'inscription: 10 Aug 2005
Messages: 53

Re: HTTPS Serveur signé par un Root CA spécifique

je ne suis pas expert non plus, mais j'ai quand même du mal à suivre la documentation du constructeur qui indique autre chose que ce que nous pouvons/devons faire réellement avec ces certificats.

Encore merci pour le coup de main. je vais tenté une approche vers le support du constructeur....


En essayant continuellement on finit par réussir. Donc : plus ça rate, plus on a de chance que ça marche. (Devise Shadoks)

Hors ligne

 
  • Index
  •  » Ubuntu
  •  » HTTPS Serveur signé par un Root CA spécifique

Pied de page des forums

Powered by FluxBB