Nouvel Addin Office - Erreur SSL & pirates

Bastien THORAL · le 23/03/15 à 17:26

Bonjour, j'ai téléchargé, pour tester, la nouvelle version (2.1.2.1, jcms 8.0.2) de l'addin-office :

J'ai le message suivant :

Votre connexion n'est pas privée. Il se peut que des pirates soient en train d'essayer de dérober vos informations sur le site https://prisme/IntranetIFP/.

Il y a-t-il un paramétrage SSL particulier, je n'avais aucun souci auparavant.

Dans la log :

2015-03-23 17:22:19,109 INFO [1] Jalios.Office.AddinModule - Addin 2.1.2.1 startup in Microsoft Word 14.0
2015-03-23 17:22:19,402 INFO [1] Jalios.Office.AddIn.Util.AddInUtil - Office Addin is configured to validate server certificate.
2015-03-23 17:22:22,288 INFO [1] Jalios.Office.JcmsTaskPane - IFP1\thoralb is trying to login to https://prisme/IntranetIFP/ with windows credentials
2015-03-23 17:22:22,466 ERROR [7] Jalios.Office.AddIn.Session.JcmsSession - [LoginImpl] An error occured during login of user admin to site https://prisme/IntranetIFP/
Jalios.Rest.Exceptions.RestException: An exception occured in the .NET client Application
Operation : "Could not retrieve resource from path/id '/WhoAmI'"
Message : "La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de la réception." ---> System.Net.WebException: La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de la réception. ---> Jalios.Rest.Exceptions.CertificateException: Une exception de type 'Jalios.Rest.Exceptions.CertificateException' a été levée.
à Jalios.Rest.Util.ServicePointManagerUtil.ServerCertificateValidationCallback(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
à System.Net.ServerCertValidationCallback.Callback(Object state)
à System.Threading.ExecutionContext.runTryCode(Object userData)
à System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Net.ServerCertValidationCallback.Invoke(Object request, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
à System.Net.ServicePoint.HandshakeDoneProcedure.CertValidationCallback(String hostName, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
à System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback)
à System.Net.Security.SslState.CompleteHandshake()
à System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
à System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
à System.Net.TlsStream.CallProcessAuthentication(Object state)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
à System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
à System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
à System.Net.ConnectStream.WriteHeaders(Boolean async)
--- Fin de la trace de la pile d'exception interne ---
à System.Net.HttpWebRequest.GetResponse()
à Jalios.Rest.RestQuery.SendRequest()
à Jalios.Rest.RestQuery.Get(String restResourceLocation)
à Jalios.Rest.RestQuery.Get()
à Jalios.Rest.ClientSession.GetJcmsResource(String resourcePathOrId)
--- Fin de la trace de la pile d'exception interne ---
à Jalios.Rest.ClientSession.GetJcmsResource(String resourcePathOrId)
à Jalios.Rest.ClientSession.WhoAmI()
à Jalios.Rest.Application.JcmsApp.WhoAmI()
à Jalios.Office.AddIn.Session.JcmsOpenAPISession.LoginImpl()
2015-03-23 17:22:22,485 ERROR [1] Jalios.Office.JcmsTaskPane - An error occured during SSL certificate validation of https://prisme/IntranetIFP/. SslPolicyErrors: https://prisme/IntranetIFP/
2015-03-23 17:22:22,490 ERROR [1] Jalios.Office.JcmsTaskPane - An error occured during SSL certificate validation of https://prisme/IntranetIFP/. SslPolicyErrors: https://prisme/IntranetIFP/

Merci !

13 pts
Olivier Jaquemet - le 27/04/15 à 10:53
Meilleure réponse

Bonjour Bastien,

Je découvre votre message seulement maintenant 

  1. Le comportement que vous observez est tout à fait normal et fait suite au correctif de sécurité ADDIN-81 qui s'assure la validité du certificat TLS/SSL sur le site distant que vous êtes en train de joindre : 
    • Le site distant DOIT utiliser un certificat TLS/SSL valide, c'est à dire (en synthèse) :
      • reconnu par les autorités de certifications configurées sur votre poste (un certificat autosigné n'est pas valable sauf si vous l'ajoutez dans la configuration d'internet explorer),
      • non expiré,
      • dont le domaine déclaré est en correspondance avec le domaine accédé dans l'addin (ie : pas une ip, pas un alias, etc etc)
      • ...
    • Dans un environnement HORS PRODUCTION, pour réaliser des tests sur un serveur dont le certificat ne pourrait pas être validé, il vous reste la possibilité de configurer la clé de registre ou la propriété (App.Config) qui est indiquée dans l'issue JIRA pour désactiver la validation du certificat. Evidement je ne vous le recommande pas.
  2. Bien que je comprenne votre besoin de parvenir à une solution, utiliser une version plus ancienne est une mauvaise idée 
    • pour la sécurité
    • pour tous les autres correctifs qui ont été réalisés (la maintenance n'est pas assurée sur les versions précédentes)
  3. Quand vous rencontrez des incidents de ce type, ouvrez un ticket de support !
    Nos équipes sont là pour vous assister et vous garantir une réponse (ce qui n'est pas le cas dans les conversations de Jalios Community).

Au passage, la version 2.1.3 (build 0001) de l'addin Microsoft Office vient d'être mise à disposition, je vous invite à l'utiliser : 
https://community.jalios.com/office-addin 

#1

Et sinon, +1 sur votre message avec une description précise et détaillée de votre problème, de surcroît fort bien illustré :)

Olivier Jaquemet · le 27/04/15 à 10:55
#2

Merci pour ces détails précieux. Vous avez raison, cela tiens plus du support, je ferais attention la prochaine fois.

En revanche, je pense que ces informations sur la validation du certificat (type check points) pourraient être ajoutées à la FAQ de la page du module avec un titre du genre "Validité du certificat TLS/SSL".

Bonne journée.

Bastien THORAL · le 27/04/15 à 11:07
8 pts
Bastien THORAL · le 09/04/15 à 14:42

J'abandonne, impossible de faire marcher les versions 2.1 je reviens à la 2.0.0.3 qui fonctionne bien.

0 pt