Compiler OpenSSL

Bonjour !

Voila, j'ai un probléééééme :(

Suite a une mise à jour de mon nginx+openssl pour avoir un vrai TLSv1.3 pas en draft, et une analyse https://www.ssllabs.com/ssltest/ de mon serveur, je vois ce monstrueux résultat Oo



Après une recherche sur internet, je tombe sur ce post https://github.com/ssllabs/ssllabs-scan/issues/636#issuecomment-459784624 qui indique que la seule solution est de recompiler OpenSSL
Sauf que moi, la compilation c'est pas trop mon fort. Alors j'ai bien cherché un peu, a priori je peux désactiver des "modules" (?) avec no-<alg>
<alg> is one of: aria, bf, blake2, camellia, cast, chacha,
cmac, des, dh, dsa, ecdh, ecdsa, idea, md4, mdc2, ocb,
poly1305, rc2, rc4, rmd160, scrypt, seed, siphash, siv, sm2,
sm3, sm4 or whirlpool. The "ripemd" algorithm is deprecated
Mais ducoup il va me désactiver tous les ciphers associésr, et c'est pas rééllement ce que je veux faire.

Quelqu'un a-t-il une idée ou est assez callé pour m'orienter un peu plus ?

Merci d'avance !
Des datas-poutou

Configuration: Windows 7, AMD Phenom II quad core 3,4Ghz x64, 4go RAM 1600Mhz, 2*1To disque dur WD caviar black, CrossFire Asus EAH6870


--
N'oubliez pas de marquez votre post comme résolut lorsque vous avez eu les réponses à vos questions...
Au royaume des aveugles, les borgnes sont rois.

3 réponses

  1. Modérateur
    Bonjour,

    De manière générale, je te déconseille de te lancer dans une phase de compilation si tu peux l'éviter, car il faudra alors "mettre à jour" toi-même les composants compilés au lieu de te reposer sur les mises à jour du système. Voici ce que je te recommande de faire avant de te lancer là dedans.

    1) Pour commencer, il faut vérifier que ton système est à jour et que la dernière version de
    nginx
    n'est pas compatible avec TLS 1.3. Supposons que tu sois sous debian stable, il serait aussi envisageable d'installer spécifiquement
    nginx
    en testing ou unstable pour vérifier qu'ils ne font pas le job. Précise-nous ta distribution pour plus de détails.

    Sous debian, on pourrait s'en sortir en téléchargeant le paquets (et ses dépendances non satisfaites) à la main depuis packages.debian.org ou mieux, en utilisant
    /etc/apt/preferences
    comme expliqué ici.

    2) Si aucune version empaquetée de nginx ne convient, la compilation prend son sens. Le paquet à installer est a priori
    libssl-dev
    . Même principe pour s'assurer que ce paquet est suffisamment récent.

    Sous debian, la version 1.1 de libssl suffira (disponible de nos jours dès debian stable sous réserve que le dépôt security soit activé, comme le montre cette page).

    Précise-nous quelle distribution tu utilises. Si tu es sous debian ou une distribution qui en dérive, copie-colle le contenu de
    /etc/apt/sources.list
    et de
    /etc/apt/preferences
    (s'il existe). Indique nous enfin les résultats (quitte à lancer
    apt-get install aptitude
    au préalable) de :

    aptitude show libssl-dev | grep -i version
    aptitude show libssl  | grep -i version


    Bonne chance
    1. Bonjour Mamiemando et merci de ta réponse.

      Je suis bien au courant de tout les impacts en n'utilisant pas le gestionnaire de paquets !

      1)
      Pour Nginx, j'utilise ce dépot :
      $ apt-cache policy
      500 http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu/ bionic/main amd64 Packages
      release v=18.04,o=LP-PPA-ondrej-nginx-mainline,a=bionic,n=bionic,l=PPA for NGINX Mainline with HTTP/2 on Ubuntu 14.04 LTS and higher,c=main,b=amd64
      origin ppa.launchpad.net
      ...


      Ma version nginx est la suivante :
      $ nginx -v
      nginx version: nginx/1.15.8

      qui a priori gerre le TLS 1.3 sur RFC 8446.

      2) De ce que je comprend, ma problématique est lié a openssl et non nginx. OpenSSL qui gére le cipher TLS_AES_128_GCM_SHA256 (0x1301) ECDH secp384r1 (eq. 7680 bits RSA) FS encoder sur 128 bits, ce qui me donne ce résultat au niveau https://www.ssllabs.com/ssltest/ voila pourquoi je comptai le recompiler.

      Je suis sur un ubuntu 18.04 (main/update/backport/security) et voici les versions libssl installés :
      $ apt show libssl{1.1,-dev} |grep -e 'Package' -e 'Version'
      Package: libssl1.1
      Version: 1.1.1a-2+ubuntu18.04.1+deb.sury.org+1
      APT-Sources: http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu/ bionic/main amd64 Packages
      Package: libssl-dev
      Version: 1.1.1a-2+ubuntu18.04.1+deb.sury.org+1
      APT-Sources: http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu/ bionic/main amd64 Packages


      Merci encore !
      1. Modérateur
        Effectivement, si
        libssl-dev
        ne suffit pas tu devras télécharger des sources plus récentes. En théorie, plus la version est récente, plus tu pourras compiler de cipher. C'est la raison pour laquelle dans ton message initial, je n'ai pas trop compris tes craintes.

        sudo apt-get update
        sudo apt-get upgrade
        sudo apt-get install git
        mkdir ~/git
        cd ~/git
        git clone https://github.com/openssl/openssl
        cd ~/git/openssl


        La suite de la procédure d'installation est décrite ici :

        ./config
        make
        make test
        make install


        Note que la dernière instruction sera plus probablement
        sudo make install
        . Afin d'éviter les conflits, tu peux purger le paquet
        libssl-dev
        :
        sudo apt-get purge libssl-dev
        . Il est important de conserver le paquet
        libssl1.*
        sous-jacent car de nombreux logiciels en dépendent sur ta machine. Tu auras donc deux librairies ssl installées : celle d'ubuntu (dans (e.g.
        /usr/lib/x86_64-linux-gnu/libssl.so.1.1
        ) et celle que tu viens d'installer (a priori dans
        /usr/local/lib
        ou
        /usr/local/ssl
        ).

        Quand tu vas passer à la compilation des cipher, il faudra simplement s'assurer que c'est bien la seconde librairie qui est utilisée.

        Bonne chances
        1. Hello,

          La problématique et que si je désactive TLS AES, tous les ciphers vont étre désactivés.
          Aussi bien TLS_AES_128_GCM_SHA256 que TLS_AES_256_GCM_SHA384.

          Ma problématique vient de ce premier cipher codé en 128 bits. Et si je le désactive, j'ai un gros warning qui apparait sur l'analyse du serveur.

          De ce que j'ai pu comprendre, ssllabs sont dans un paradoxe total est devrait étre ammener à faire des modif du coté de leur analyser donc a suivre...

          Merci encore de ton implication..

          Des datas bisous
        2. Modérateur
          Hébé pas simple tout ça :-) Moi j'avoue qu'un A+ m'aurait amplement suffi ;-)