FR/ EN

Générer un certificat auto-signé avec TMS Cryptography Pack pour nginx

Début juin est sortie la version 3.0.1 de TMS Cryptography Pack. Dans les nouveautés, il y a une nouvelle classe, TX509Certificate qui permet de générer des certificats X509 auto-signés et de décoder des certificats afin de lire tous les champs. X509 est une norme créée en 1988 qui établit un format standard de certificat électronique. Générer un certificat avec TMS Cryptography Pack Pour générer un certificat auto-signé avec TMS Cryptography Pack, il faut utiliser le composant TX509Certificate et remplir les champs comme ci-dessous : X509Certificate1.KeyFilePath := 'C:\nginx-1.6.2\conf\nginx_key.key'; X509Certificate1.CrtFilePath := 'C:\nginx-1.6.2\conf\nginx_crt.crt'; X509Certificate1.signatureAlgorithm := TSignAlgo.sa_sha256rsa; X509Certificate1.BitSizeEncryptionAlgorithm := 2048; X509Certificate1.countryName := 'FR'; //facultatif X509Certificate1.stateName := 'Votre région'; //facultatif X509Certificate1.localityName := 'Votre ville'; //facultatif X509Certificate1.OrganizationName := 'Le nom de votre entreprise'; //facultatif X509Certificate1.OrganizationUnitName := 'Le domaine de votre entreprise'; //facultatif X509Certificate1.commonName := 'votrenomdedomaine.fr'; //obligatoire X509Certificate1.GenerateSelfSigned; Ce code va générer une clé privée stockée dans le fichier ‘C:\nginx-1.6.2\conf\nginx_key.key’ et un certificat dans ‘C:\nginx-1.6.2\conf\nginx_crt.crt’. Pour le choix de l’algorithme de signature, seulement sa_sha256rsa et sa_rsapss sont supportés. En ce qui concerne la taille de la clé pour l’algorithme de chiffrement, seules 2048 et 4096 bits sont acceptées. Pour générer un certificat pour nginx, il est important que le champ commonName de votre certificat soit le nom de votre site web. Configurer nginx sur Windows avec votre certificat Ouvrez le fichier de configuration de nginx  c:\nginx-1.6.2\conf\nginx.conf Ajoutez les lignes « listen 443 ssl; » et « ssl_certificate », entrez correctement le nom de votre serveur avec le nom de domaine et l’adresse IP locale de votre machine comme dans le code ci-dessous: server { listen 80; server_name votrenomdedomaine.fr 192.168.40.100 localhost; listen 443 ssl; ssl_certificate C:\nginx-1.6.2\conf\nginx_crt.crt; ssl_certificate_key C:\nginx-1.6.2\conf\nginx_key.key; #charset koi8-r; #access_log...
Sortie de la version 10.2.3 de RAD Studio !

Sortie de la version 10.2.3 de RAD Studio !

Hier, le 13 mars 2018, l’équipe d’Embarcadero a annoncé la sortie de la version 10.2 Tokyo, Release 3 (ou encore 10.2.3) de RAD Studio. Vous trouverez toutes les nouveautés ici : http://docwiki.embarcadero.com/RADStudio/Tokyo/en/10.2_Tokyo_-_Release_3 En tant que développeuse C++, j’ai hâte de tester le support de CMake, qui nous permettra de construire des bibliothèques tierces bien plus facilement. De plus, on pourra désormais renommer d’un seul clic un identifiant dans le code avec C++ Rename Refactoring. Pour celles et ceux qui ont la version Pro de RAD Studio, sachez que le pack mobile est maintenant directement inclus dans la version 10.2.3. Enfin, cette version inclue de nouveaux templates FMX, que l’on peut obtenir sur la plateforme de packages GetIt. Il y a bien sûr d’autres nouveautés que vous pouvez retrouver dans la vidéo ci-dessous...
Déployer une application sur le Windows Store

Déployer une application sur le Windows Store

Depuis la version RAD Studio 10.1 Berlin Update 2 Anniversary Edition, on peut créer un package .appx de son application afin de la soumettre au Windows Store. Pour créer le package, je vous conseille de suivre le tutoriel de Paweł Głowacki : Appx Development for Windows 10 Store. Je vais en traduire une partie en français, en rajoutant des éléments liés à ma propre expérience de création de package. Pour déployer une application appx, il faut Windows 10 (version minimum : Anniversary Update), RAD Studio 10.1 Berlin Update 2 Anniversary Edition ou une version suivante, et le SDK Windows 10. Ensuite, il faut activer le mode développeur sous Windows. Pour cela, il faut ouvrir l’application « Paramètres », cliquer sur « Mise à jour et sécurité », puis sur « Pour les développeurs », entrer le mot de passe administrateur si besoin et choisir « Mode développeur » dans « Utiliser les fonctionnalités de développement ». Cela peut prendre quelques minutes pour télécharger et installer les paquets nécessaires. L’étape suivante se déroule sur RAD Studio, vous devez configurer un nouveau SDK Windows 10. Rendez-vous dans « Outils – Options – Gestionnaire de SDK ». Ajoutez un nouveau SDK Windows. Il devrait trouver votre SDK automatiquement. Si ce n’est pas le cas, vous devez renseigner manuellement les chemins vers MakeAppx.exe, SignTool.exe et MakeCert.exe. Déploiement de test sur votre machine RAD Studio permet de tester localement votre appx sur votre machine. Pour cela, il faut créer un certificat et signer l’appx avec. Tout se passe dans « Projets – Options – Approvisionnement ». Choisissez « Ad-hoc » comme type de distribution et cliquez sur « créer un certificat auto-signé… ». Choisissez l’emplacement de votre fichier (attention il faudra savoir où...
La version 10.2.2 de RAD Studio est sortie !

La version 10.2.2 de RAD Studio est sortie !

Sarina Dupont a annoncé la sortie de RAD Studio 10.2.2 le 12 décembre.  C’est la mise à jour 2 de la version 10.2 Tokyo. Vous pouvez télécharger les versions pour les différents langages ici : Delphi : http://cc.embarcadero.com/reg/delphi C++ Builder : http://cc.embarcadero.com/reg/c_builder RAD Studio : http://cc.embarcadero.com/reg/rad_studio J’ai testé ce matin les nouveautés annoncées. Tout d’abord, le premier changement visible, c’est la possibilité de changer le thème de l’IDE, au départ, on a le choix entre le thème light ou dark. Mais en fait, on a bien plus de choix que ça ! Dans Outils -> Options -> Theme Manager on peut choisir Clair, Foncé ou Personnalisé. Le thème Dark, ça donne ça : Vous constaterez dans la palette d’outils que les icônes des composants ont subi un joli relooking. Du côté des fonctionnalités maintenant, il y a le support des FireMonkey Quick Edit (image ci-dessous), de nouveaux contrôles VCL, une licence de déploiement pour RAD Server dans les éditions Entreprise et Architecte et la correction de plus de 150 bugs. Vous pouvez voir toutes les nouveautés en action dans cette vidéo :...

Importer des clés RSA OpenSSL avec Delphi et Indy

OpenSSL est une bibliothèque de chiffrement open-source implémentant TLS et son prédécesseur SSL. Elle est massivement utilisée par les sites web en HTTPS. Certains composants Indy utilisent OpenSSL comme TIdServerIOHandlerSSLOpenSSL ou TIdSSLIOHandlerSocketOpenSSL. Attention, Indy utilise la version 1.0.2 d’OpenSSL qui n’est pas la dernière version. Dans cet article, on va utiliser les fichiers IdSSLOpenSSLHeaders et IdSSLOpenSSL d’Indy. Pour iOS, on aura aussi besoin de IdSSLOpenSSLHeaders_Static. Le but est d’importer les clés RSA contenues dans un fichier au format PEM afin de pouvoir les lire ou les utiliser par la suite. On va traiter trois cas : Une clé publique Un certificat Une clé privée (chiffrée ou non) Charger OpenSSL Pour utiliser la bibliothèque OpenSSL sous Windows, OSX ou iOS, il faut qu’elle soit installée sur votre machine. Embarcadero explique comment faire ici : http://docwiki.embarcadero.com/RADStudio/Tokyo/fr/OpenSSL Pour Android, il y a deux cas : – si vous avez une version < 6.0 alors vous n’avez rien à faire, OpenSSL est inclus par défaut. – si vous avez une version >= 6.0 alors il vous faut des fichiers libcrypto.so* et libssl.so* (par exemple, libcrypto.so.1.0.0). Il faut les déployer dans ./assets/internal pour qu’ils soient accessibles via GetDocumentsPath. Vous pouvez en trouver des versions ici : https://indy.fulgan.com/SSL/ Ensuite, il faut charger la bibliothèque dans votre programme. Les fonctions dont on va avoir besoin sont dans la partie crypto d’OpenSSL. On n’a pas besoin de charger la bibliothèque sous iOS car elle est liée statiquement au programme. function TFromOpenSSL.LoadSSLCryptoLibrary: HMODULE; begin {$IFDEF MSWINDOWS} Result := SafeLoadLibrary('libeay32.dll'); {$ELSE} {$IFDEF ANDROID} Result := LoadLibrary('libcrypto.so'); {$ELSE} {$IFNDEF IOS} Result := LoadLibrary('libcrypto.dylib'); {$ENDIF} {$ENDIF} {$ENDIF} end; Cette fonction est utilisée...