Https et SAS Web Server
S’il y a bien un sujet qui revient souvent sur le devant de la scène c’est le déploiement SAS en https ! Utiliser une connexion sécurisée ne sert pas uniquement à crypter/chiffrer des données, mais garantie :
ou utiliser un alias :
Si vous ne trouvez rien, on l’ajoute :
Il est également possible d'utiliser l’outil
SAS TLS/SSL Diagnostic Tool pour ajouter votre certificat dans le keystore java SAS
Puis :
Ce qui donne :
Erreur lors du ssl handshake
Si, durant le déploiement, vous rencontrez l'erreur :
Vérifier que java accède bien au serveur WEB, en https, c'est à dire que le CA, ayant signé le certificat de votre serveur, est bien dans le keystore jssecacerts.
- L’authenticité: Est-ce que les données que je reçois proviennent bien du site web que je consulte ?
- L’intégrité; Est-ce que les données que je reçois sont-elles intègres ? Est-ce que quelqu’un les aurait modifiées durant leur transfert ?
- Le cryptage (ouchiffrement) : Est-ce que quelqu’un d’autre peut lire les données qui ont été transférées ?
Avant de commencer
Si vous envisagez d'utiliser HTTPS, il est préférable d'activer cette fonctionnalité pendant l'installation et la configuration avec l'Assistant de déploiement SAS (SAS Deployment Wizard) . En effet, l'assistant de déploiement SAS demande un certificat et une clé privée signés par une autorité de certification. Le but de cet article n'est pas de vous présenter, de façon exhaustive, le déploiement de SAS sur votre environnement, mais de mettre le "focus" sur la configuration de votre serveur web en https. Revenons à nos certificats.. La première étape de notre déploiement consiste à « authentifier » votre serveur par une autorité. Pour notre exemple, nous allons utiliser un certificat auto-signé, c’est-à-dire que nous allons jouer le rôle de l’autorité de certification Je vous invite à vous rendez sur mon article Création d’un certificat auto-signé avec OpenSSL pour créer votre clé et la signer.Certificat
J’ai donc suivi mon propre tuto pour créer une clé et un certificat « authentifié » pour mon domaine sasstudio.nicolas-housset.fr. C’est ce certificat et cette clé que nous utiliserons dans ce tuto : Il est important également que votre certificat CA se trouve dans votre keystore de la JVM SAS. ( How SAS Uses Certificates) Pour vérifier : L’occasion de vérifier non ? Dans notre cas vous pouvez rechercher avec la commande suivante :
1 |
keytool -list -v -keystore SASHome\SASPrivateJavaRuntimeEnvironment\9.4\jre\lib\security\jssecacerts |
1 |
keytool -list -v -keystore SASHome\SASPrivateJavaRuntimeEnvironment\9.4\jre\lib\security\jssecacerts -alias sastudio.nicolas-housset.fr |
1 |
keytool -import -trustcacerts -file C:\SAS\cle_for_sas\certificat.crt -alias sasstudio.nicolas-housset.fr -keystore SASHome\SASPrivateJavaRuntimeEnvironment\9.4\jre\lib\security\jssecacerts |
Installation SAS
SAS Web Server est installé avec SAS Deployment Wizard. L'assistant peut également configurer automatiquement le serveur. Par défaut, le serveur est installé sur la même machine que SAS Web Application Server. Cependant, comme la topologie est définie dans un fichier plan que l'assistant utilise, le serveur peut être déployé sur une machine différente si la topologie est définie de cette façon dans le fichier plan. Lors de l'installation, et plus précisément durant l'étape de configuration de SAS Web Server, vous allez spécifier les options de configuration su serveur Web. Aussi, il vous faudra choisir "Protocole HTTP utilisant SSL" : Puis il vous sera demandé d'indiquer l'emplacement de votre certificat et de votre clé privée ( du serveur SAS ) : Après d'autres étapes de configuration, l'installation pourra démarrer :Vérification
Après installation, vous pouvez accéder à votre environnement SAS :A savoir
La cas de chrome Si vous utilisez un certificat auto-signé, c'est à dire non signé par une autorité certifiante reconnue, vous aurez l'erreur ERR_CERT_AUTHORITY_INVALID lors d'une connexion depuis Chrome : Pour ne plus avoir ce message et contourner cette limitation, il faut autoriser, dans Chrome, les certificats non valides pour les ressources chargées à partir de l'hôte local. Pour cela, il suffit de saisir l'instruction suivante dans votre barre d'adresse chrome :
1 |
chrome://flags/#allow-insecure-localhost |
Problèmes possibles et autres choses à savoir
Clé avec mot de passe
Un autre point concerne l'utilisation d'un clé avec mot de passe. Il est obligatoire d'utiliser une clé SANS mot de passe. Si vous utilisez un clé avec mot de passe, votre serveur web SAS ne pourra démarrer et vous aurez l'erreur suivante dans les logs :(Web\WebServer\logs\error...log) :
1 |
[Fri Nov 25 20:58:01 2016] [error] Init: SSLPassPhraseDialog builtin is not supported on Win32 (key file C:/SAS/Config/Lev5/Web/WebServer/ssl/sasstudio.nicolas-housset.fr.key) |
1 |
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target |