none
NLB+CAS Array > pb avec certificat autosigné RRS feed

  • Question

  • Bonjour à tous,

    Sur la plateforme suivante je rencontre un problème avec le certifcat auto signé d'E2K10 (OS = Win2K8 R2 64bits Enterprise)

    SRV1/SRV2 -> 2 E2K10 Enterprise. Rôles CAS/HT installés
    SRV3/SRV4 -> 2 E2K10 Enterprise. Rôles MBX installés

    J'ai un NLB sur les 2 serveurs CAS (cluster.domain.local). CAS Array a été configuré dans E2K10.
    DAG sera configuré par la suite sur les SRV3/SRV4.

    J'ai reconfiguré en PowerShell tous les Virtual Directory (AutoDiscover/OWA/ECP/ActiveSync/OAB/WebServices) afin qu'ils pointent vers cluster.domain.local. Tout est OK pour moi.

    Depuis cette modification, j'ai sur Outlook 2007 l'erreur : "The name on the security certificate is invalid or does not match the name of the site". J'ai creusé, si je fais un Get-ExchangeCertificate sur les 2 serveurs SRV1 et SRV2 j'obtiens :

    SRV1 :
    CertificateDomains : SRV1, SRV1.domain.local
    Subject : CN=SRV1

    SRV2 :
    CertificateDomains : SRV2, SRV2.domain.local
    Subject : CN=SRV2

    J'en déduis qu'il me faut un Certificat SAN mais je n'ai pas le budget pour le prendre chez une société tiers.

    1/ Si j'installe un serveur CA local sur mes serveurs, est ce que je pourrais générer ce certificat et faire disparaitre l'erreur
    2/ Avez-vous d'autres idées.

    Merci à tous !!
    PFZ


    Microsoft MCP 70-291 / Acronis ACE VMware VCP-310 / VTSP 4 / VSP 4
    lundi 21 juin 2010 14:31

Réponses

  • Hello,

    Pour la question 1

    Le certificat auto-signé doit être supprimé tout court... Passer par une CA interne, réglera vos problèmes. Le certificat pour Exchange doit, s'il est issu d'une CA Windows Server :

     - Etre de type web server

     - Contenir l'ensemble des noms des services Exchange (webmail, outlook anywhere, autodiscover et activesync) et les noms netbios/fqdn des machines CAS

     - Concernant la procédure, rapidement, il faudra lancer en powershell la demande de certificat sur le serveur1, aller sur l'interface web de la CA pour générer le certificat, réinstaller le certificat et réassigner au service IIS le certificat sur le serveur1 (en powershell). Toujours depuis le serveur1, exporter le certificat avec la clef privée et toute la chaine de certification (mmc certificat), réimporter le certificat sur le serveur2 et réassigner le certificat à IIS (powershell)

    Pour générer votre requete simplement pour Exchange, n'hésitez pas à aller https://www.digicert.com/easy-csr/exchange2007.htm

    Pour plus de détails sur les web services et les certificats

    http://msexchangeteam.com/archive/2007/04/30/438249.aspx et http://technet.microsoft.com/en-us/library/bb332063(EXCHG.80).aspx

    Concernant la CA Microsoft, il est préférable de l'installer sur un serveur membre qui ne joue que ce rôle (surtout pas un dc....) :

     - Créer un modèle de certificat utilisateurs pour plus de sécurité (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=3c670732-c971-4c65-be9c-c0ebc3749e24)

    - Préférez un système d'exploitation Windows Server 2008 R2 pour pouvoir déployer des modèles de certificats créés (avant 2008 R2, une édition Enterprise était nécessaire)

     - Définir le certificat de la CA comme certificat de confiance.

    Si vous choisissez d'utiliser un certificat interne, les utilisateurs qui attaqueront vos services web par des machines tierces (cybercafé,...), ils auront une erreur de certificat. En effet, ces machines n'ont aucune raison de faire confiance à votre CA ;-)

    Pour répondre au petit 2, je crois qu'il existe des autorités racines confiance gratuites, comme GoDaddy (https://certs.godaddy.com/anonymous/repository.seam) mais je n'ai jamais essayé. Dans ce cas, le certificat devra être de type "communications unifiées"

    En espérant avoir répondu à vos questions

    A+

    • Marqué comme réponse ProFuZion mardi 28 septembre 2010 13:42
    lundi 21 juin 2010 16:07
  • Bonjour,

    dans ton cas (Tests Internes), la génération d'un certificat par Exchange pourrait suffire à tes besoins.

    Le certificat d'origine n'est effectivement pas adapté. Mais l'instruction "New-ExchangeCertificate" permet de créer un certificat possédant tous les éléments nécessaires que ce soit pour l'interne ou l'externe. Ce certificat servira aussi d'autorité.

    La seule contrainte consiste à ajouter le certificat dans les autorités de tous les serveurs Exchange (CAS/HUB), et de toutes les stations qui seront configurées pour utiliser Outlook Anywhere. C'est probablement le problème que tu as avec les certificats et autorités que tu as créé.

    L'autorité Interne (CA) peut être distribuée automatiquement aux stations et serveurs, de même que toute autre autorité.

    Voici un exemple de création de certificat :

    New-ExchangeCertificate -FriendlyName 'webmail.TASOCIETE.fr' -PrivateKeyExportable $true -KeySize '2048' -SubjectName 'C=FR,S="REGION",L="VILLE",O="SOCIETE",OU="SERVICE",CN=webmail.SOCIETE.fr' -DomainName 'CLUSTER.SOCIETE.LOCAL','SRV1.SOCIETE.LOCAL','SRV2.SOCIETE.LOCAL','webmail.SOCIETE.fr','autodiscover.SOCIETE.fr','SRV1','SRV2','DOMAINE.LOCAL','SOCIETE.fr' -Server 'SRV1'

    - Le certificat sera généré sur le 1er serveur, puis installé sur le 2ème. (clé privée et publique). Il sera aussi copié dans les autorités de certification des 2 serveurs Exchange CAS.

    - Le certificat contiendra le nom CLUSTER utilisé par les 2 noeuds, donc plus de problème.

    Voici comment activer le  certificat sur tous les services Exchange:

    enable-exchangecertificate 588D66F941C9DC3364BBB0C07A98BC388AB153AA -services IMAP,POP,IIS,SMTP –donotrequireSSL

    Bien entendu, la valeur 588D... doit être remplacé par la valeur "Thumbprint" de ton propre certificat. (utiliser la commande GET-ExchangeCertificate pour obtenir les valeurs).

    A+

     

     

     


    Thierry DEMAN. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (65 MCPs) Exchange MVP (http://base.faqexchange.info) LE PERMIS INFORMATIQUE.
    mardi 22 juin 2010 12:24
    Modérateur
  • Hello,

    Concernant les étapes de réalisation :

    - 2008 R2 std aurait suffit mais tanpis ;-)

    - je préfère ajouter les noms netbios/fqdn dans les SANs du certificat dans la commande new-exchangecertificate (sauf si le certificat est visible depuis Internet)

    Concernant le troubleshoot :

    - j'ai oublié de préciser que maintenant que vous avez créé une ca interne, il faut déployer le certificat racine de la CA comme certificat de confiance. Pour cela, une gpo de domaine doit être créée. Voir http://technet.microsoft.com/fr-fr/library/cc738131(WS.10).aspx.

    - Pour l'exportation, vous pouvez utiliser soit l'interface graphique avec le lien cité (choisir : local computer, export private key et all certificate in certification path), soit en powershell (http://technet.microsoft.com/fr-fr/library/bb310778.aspx : pour le faire en powershell, faire un get-exchangecertificate pour récupérer l'empreinte)

    - Pour l'import sur le second serveur, passez par l'interface graphique, en 2010 on peut !

    - Si vous ne faites que de l'owa, autodiscover et activesync, iis suffit

    - par rapport au certificat autosigné, je le laisse, il ne prend pas beaucoup de place...

    A+

    mardi 22 juin 2010 12:27

Toutes les réponses

  • Hello,

    Pour la question 1

    Le certificat auto-signé doit être supprimé tout court... Passer par une CA interne, réglera vos problèmes. Le certificat pour Exchange doit, s'il est issu d'une CA Windows Server :

     - Etre de type web server

     - Contenir l'ensemble des noms des services Exchange (webmail, outlook anywhere, autodiscover et activesync) et les noms netbios/fqdn des machines CAS

     - Concernant la procédure, rapidement, il faudra lancer en powershell la demande de certificat sur le serveur1, aller sur l'interface web de la CA pour générer le certificat, réinstaller le certificat et réassigner au service IIS le certificat sur le serveur1 (en powershell). Toujours depuis le serveur1, exporter le certificat avec la clef privée et toute la chaine de certification (mmc certificat), réimporter le certificat sur le serveur2 et réassigner le certificat à IIS (powershell)

    Pour générer votre requete simplement pour Exchange, n'hésitez pas à aller https://www.digicert.com/easy-csr/exchange2007.htm

    Pour plus de détails sur les web services et les certificats

    http://msexchangeteam.com/archive/2007/04/30/438249.aspx et http://technet.microsoft.com/en-us/library/bb332063(EXCHG.80).aspx

    Concernant la CA Microsoft, il est préférable de l'installer sur un serveur membre qui ne joue que ce rôle (surtout pas un dc....) :

     - Créer un modèle de certificat utilisateurs pour plus de sécurité (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=3c670732-c971-4c65-be9c-c0ebc3749e24)

    - Préférez un système d'exploitation Windows Server 2008 R2 pour pouvoir déployer des modèles de certificats créés (avant 2008 R2, une édition Enterprise était nécessaire)

     - Définir le certificat de la CA comme certificat de confiance.

    Si vous choisissez d'utiliser un certificat interne, les utilisateurs qui attaqueront vos services web par des machines tierces (cybercafé,...), ils auront une erreur de certificat. En effet, ces machines n'ont aucune raison de faire confiance à votre CA ;-)

    Pour répondre au petit 2, je crois qu'il existe des autorités racines confiance gratuites, comme GoDaddy (https://certs.godaddy.com/anonymous/repository.seam) mais je n'ai jamais essayé. Dans ce cas, le certificat devra être de type "communications unifiées"

    En espérant avoir répondu à vos questions

    A+

    • Marqué comme réponse ProFuZion mardi 28 septembre 2010 13:42
    lundi 21 juin 2010 16:07
  • Bonjour aperico,

    Grand merci pour ton aide. Je viens de réaliser :

    1/ Créer une VM dédiée (serveur membre Win2k8 R2 ENT) dédié pour le rôle AD CS
    2/ Installation du rôle AD CS, vérification tout est OK
    3/ Générer un nouveau certificat en PS sur SRV1

    New-ExchangeCertificate -GenerateRequest -SubjectName "c=US, o=Woodgrove Bank, cn=mail1.woodgrovebank.com" -DomainName woodgrovebank.com, example.com -PrivateKeyExportable
    4/ Sur l'interface Web CA, copy/Paste du certificat généré pour faire la demande de request
    On your Client Access server, open Internet Explorer and enter the URL to connect to the Certificate Services administration Web page that is hosted on the server where you installed Certificate Services. For example, http://CAS01/certsrv or https://CAS01/certsrv.

    5/ Certificat est généré, je le sauvegarde en Base64
    6/ Installation du certificat sur SRV1 (attention la syntaxe a beaucoup changé par rapport à E2K7) et activation IIS

    [PS] C:\Windows\system32>Import-ExchangeCertificate -FileData ([Byte[]]$(Get-Content -Path C:\CERTIFICATS\2010.06.22\certnew.cer -Encoding byte -ReadCount 0)) | Enable-ExchangeCertificate -Services IIS

    A partir d'ici j'ai quelques points qui me bloquent :

    1/ Si je fais un Get-ExchangeCertificate | fl sur SRV1, je vois que le "status" du certificat est en "invalid". Est-ce normal ?
    Un test avec Outlook (et SRV2 stoppé) ne me donne plus l'erreur de certificat.

    Par contre dans l'EMC : Exchange me dit que mon "CA Root Certificate nis not trusted because it is not in the Trusted Root Certification Authorities store". Ce qui est logique car c'est un CA local non ? Le "status" que je vois dans le Get-ExchangeCertificate viendrait de là.
    Comme je vais conserver ce CA local, j'aurai toujours cette erreur ?

    2/ Pour exporter le certificat + clé privée, je dois suivre ce lien ? http://technet.microsoft.com/fr-fr/library/cc737187(WS.10).aspx
    -> je dois choisir "computer account" (j'ai le choix également avec "My user account" et "Service account") ?
    -> dans le PFX, est ce que je dois "include all certificates in the certification patch if possible" ? "delete private key if export is successful", "Export all extended properties" ?

    3/ Pour le réimporter sur SRV2 j'utilise la même commande qu'au point 6 ?

    4/ Je dois mettre en plus de IIS, les rôles POP, SMTP et IMAP comme dans le certificat auto signé ?

    5/ Si tout est OK à la fin, je peux supprimer directement le certificat autosigné ?

    Merci pour le temps précieux que vous m'accordez !!

    PFZ


    Microsoft MCP 70-291 / Acronis ACE VMware VCP-310 / VTSP 4 / VSP 4
    mardi 22 juin 2010 11:53
  • Bonjour,

    dans ton cas (Tests Internes), la génération d'un certificat par Exchange pourrait suffire à tes besoins.

    Le certificat d'origine n'est effectivement pas adapté. Mais l'instruction "New-ExchangeCertificate" permet de créer un certificat possédant tous les éléments nécessaires que ce soit pour l'interne ou l'externe. Ce certificat servira aussi d'autorité.

    La seule contrainte consiste à ajouter le certificat dans les autorités de tous les serveurs Exchange (CAS/HUB), et de toutes les stations qui seront configurées pour utiliser Outlook Anywhere. C'est probablement le problème que tu as avec les certificats et autorités que tu as créé.

    L'autorité Interne (CA) peut être distribuée automatiquement aux stations et serveurs, de même que toute autre autorité.

    Voici un exemple de création de certificat :

    New-ExchangeCertificate -FriendlyName 'webmail.TASOCIETE.fr' -PrivateKeyExportable $true -KeySize '2048' -SubjectName 'C=FR,S="REGION",L="VILLE",O="SOCIETE",OU="SERVICE",CN=webmail.SOCIETE.fr' -DomainName 'CLUSTER.SOCIETE.LOCAL','SRV1.SOCIETE.LOCAL','SRV2.SOCIETE.LOCAL','webmail.SOCIETE.fr','autodiscover.SOCIETE.fr','SRV1','SRV2','DOMAINE.LOCAL','SOCIETE.fr' -Server 'SRV1'

    - Le certificat sera généré sur le 1er serveur, puis installé sur le 2ème. (clé privée et publique). Il sera aussi copié dans les autorités de certification des 2 serveurs Exchange CAS.

    - Le certificat contiendra le nom CLUSTER utilisé par les 2 noeuds, donc plus de problème.

    Voici comment activer le  certificat sur tous les services Exchange:

    enable-exchangecertificate 588D66F941C9DC3364BBB0C07A98BC388AB153AA -services IMAP,POP,IIS,SMTP –donotrequireSSL

    Bien entendu, la valeur 588D... doit être remplacé par la valeur "Thumbprint" de ton propre certificat. (utiliser la commande GET-ExchangeCertificate pour obtenir les valeurs).

    A+

     

     

     


    Thierry DEMAN. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (65 MCPs) Exchange MVP (http://base.faqexchange.info) LE PERMIS INFORMATIQUE.
    mardi 22 juin 2010 12:24
    Modérateur
  • Hello,

    Concernant les étapes de réalisation :

    - 2008 R2 std aurait suffit mais tanpis ;-)

    - je préfère ajouter les noms netbios/fqdn dans les SANs du certificat dans la commande new-exchangecertificate (sauf si le certificat est visible depuis Internet)

    Concernant le troubleshoot :

    - j'ai oublié de préciser que maintenant que vous avez créé une ca interne, il faut déployer le certificat racine de la CA comme certificat de confiance. Pour cela, une gpo de domaine doit être créée. Voir http://technet.microsoft.com/fr-fr/library/cc738131(WS.10).aspx.

    - Pour l'exportation, vous pouvez utiliser soit l'interface graphique avec le lien cité (choisir : local computer, export private key et all certificate in certification path), soit en powershell (http://technet.microsoft.com/fr-fr/library/bb310778.aspx : pour le faire en powershell, faire un get-exchangecertificate pour récupérer l'empreinte)

    - Pour l'import sur le second serveur, passez par l'interface graphique, en 2010 on peut !

    - Si vous ne faites que de l'owa, autodiscover et activesync, iis suffit

    - par rapport au certificat autosigné, je le laisse, il ne prend pas beaucoup de place...

    A+

    mardi 22 juin 2010 12:27
  • Merci Aperico, c'est devenu encore plus clair pour moi :

    - J'ai bien rajouté les noms netbios/fsqn dans le certificat SAN, mon exemple était un copié/collé d'un Technet donc sans rapport avec mon infrastructure.

    - Je vais voir pour créer la GPO, mais suite à mes manipulations (ou un reboot serveur peut être), le certificat est valide sur les 2 serveurs :)

    - OK l'exportation a bien fonctionné, interface graphique nickel !

    Les 2 serveurs CAS/HT ont donc le certificat installé, Outlook 2007 est bien online même en mode cache (je n'ai plus la popup avec le nom de certificat incorrect).

    Par contre j'ai dans le "Sync Issues" d'Outlook l'erreur

    1/16:42:07 Microsoft Exchange offline address book
    16:42:07                                Not downloading Offline address book files.  A server (URL) could not be located.
    16:42:07               0X8004010F

     

    J'ai activé le web-based distribution et ajouté mes 2 serveurs CAS/HT dans la liste "Distribution Points"
    Maintenante j'ai l'erreur 0x80190194

     

    17:20:06 Synchronizer Version 12.0.6509

    17:20:06 Synchronizing Mailbox 'Administrator'

    17:20:06 Synchronizing Hierarchy

    17:20:06 Done

    17:20:15 Microsoft Exchange offline address book

    17:20:15               0X80190194

     

    Je suis entrain de faire des recherches sur Internet à ce sujet. Je me demandais si l'OAB devait également pointer sur cluster.domain.local
    Ca me parait logique non ?

    Merci pour tes bons conseils
    PFZ


    Microsoft MCP 70-291 / Acronis ACE VMware VCP-310 / VTSP 4 / VSP 4
    mardi 22 juin 2010 15:36
  • Merci Thierry,

    OK pour la contrainte en ce qui concerne le déploiement du certificat sur les SRV + PC. Je vais me pencher sur ça et la distribution automatique.

    Quand tu dis "Il sera aussi copié dans les autorités de certification des 2 serveurs Exchange CAS", tu veux dire dans le gestionnaire de certificat local de chaque serveur ? Je pensais que le fait de l'importer dans Exchange allait faire cela de manière automatique. Je pense ne pas t'avoir suivi/compris sur ce point.

    Pour tout le reste, je suis d'accord, les tests effectués ici correspondent bien à tes indications.

    Merci !
    PFZ


    Microsoft MCP 70-291 / Acronis ACE VMware VCP-310 / VTSP 4 / VSP 4
    mardi 22 juin 2010 15:40
  • Hello,

    Concernant l'oab, je suis pas fan... Mais l'oab est un service web et doit être configuré sur les CAS. Typiquement, je configure webmail.tartanpion/owa pour l'owa et webmail.tartanpion/oab pour l'oab dans la console emc. N'hésitez pas à refaire les tests après configuration ;-)

    Concernant l'erreur, j'ai trouvé http://blogs.msdn.com/b/dgoldman/archive/2006/11/27/error-0x80190194-when-using-an-outlook-2007-client-to-download-a-web-distribution-enabled-oab.aspx

    - Il faudrait chercher sur les logs des CAS l'id 1008 source msexchangefds qui est l'event de synchro de l'oab entre mailbox/cas

    - Si l'id n'est pas présent, faire un net stop/start msexchangefds

    Et apparement si l'erreur persiste, faire une copie manuelle de l'oab du mailbox vers le cas

    Mais à tester en maquette avant...

    A+

    mercredi 23 juin 2010 07:31
  • Bonsoir,

    oui, il faut utiliser la console de certificats sur les 2 serveurs Exchange qui se partagent le certificat.

    La commande "enable-exchangecertificate" sera aussi utilisée sur les 2 machines.

    A+


    Thierry DEMAN. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (65 MCPs) Exchange MVP (http://base.faqexchange.info) LE PERMIS INFORMATIQUE.
    samedi 26 juin 2010 17:26
    Modérateur
  • Bonsoir,

    avez-vous forcé la mise à jour de l'OAB ?

    Activez les logs avancés sur la génération du carnet d'adresse!

    Vérifier qu'un fichier XML soit bien présent et accessible dans le sous-répertoire de l'OAB.

    A+


    Thierry DEMAN. https://www.mcpvirtualbusinesscard.com/VBCServer/MVPtdeman/profile (65 MCPs) Exchange MVP (http://base.faqexchange.info) LE PERMIS INFORMATIQUE.
    samedi 26 juin 2010 20:11
    Modérateur