1. Présentation
Actuellement, des vulnérabilités openssl ont été exposées, ce qui entraînera des fuites d'informations privées. De nombreuses machines sont impliquées et les environnements sont très différents, ce qui entraîne des solutions de réparation différentes. De nombreux serveurs utilisent nginx pour compiler statiquement openssl et compiler directement openssl dans nginx. Cela signifie que la simple mise à niveau de openssl n'a aucun effet sur la bibliothèque de liens dynamiques openssl externe. La recompilation peut le guérir.
2. Identifiez si nginx est compilé statiquement
Les trois méthodes suivantes peuvent confirmer si nginx est compilé statiquement openssl.
2.1 Afficher les paramètres de compilation nginx
Entrez la commande suivante pour afficher les paramètres de compilation nginx :
# ./sbin/nginx -v
Si les paramètres de compilation contiennent --with-openssl=..., cela signifie que nginx compile statiquement openssl, comme indiqué Ci-dessous:
nginx version: nginx/1.4.1 built by gcc 4.4.7 20120313 (red hat 4.4.7-3) (gcc) tls sni support enabled configure arguments: --prefix=/opt/app/nginx --with-http_ssl_module --with-openssl=/opt/app/openssl-1.0.1e --add-module=/opt/app/ngx_cache_purge-2.1
2.2 Afficher les bibliothèques dépendantes de nginx
Pour plus de confirmation, vous pouvez vérifier les bibliothèques dépendantes du programme et entrer la commande suivante :
# ldd `which nginx` | grep ssl
Display
libssl.so.10 => /usr/lib/libssl.so.10 (0xb76c6000)
Remarque : si la sortie ne le fait pas contient le fichier libssl.so (), cela signifie qu'il est compilé statiquement openssl
Entrez ensuite la commande pour déterminer openssl pour déterminer la version openssl à laquelle appartient la bibliothèque, mais elle ne sera pas trop détaillée. Par exemple, elle devrait. être 1.0.1e.5.7, mais seul 1.0.1e est affiché. :
# strings /usr/lib/libssl.so.10 | grep "^openssl " openssl 1.0.1e-fips 11 feb 2013
2.3 Vérifiez les fichiers ouverts par nginx
Vous pouvez également vérifier si les fichiers ouverts par nginx sont compilés statiquement. Entrez la commande suivante :
# ps aux | grep nginx # lsof -p 111111<这里换成nginx的进程pid> | grep ssl
Si le fichier de la bibliothèque openssl n'est pas ouvert, cela signifie que openssl est compilé statiquement Comme le montre l'image ci-dessous :
3. Recompilez nginx
Dans les sociétés Internet, il existe peu de nginx unifié. versions. Chaque département sélectionne le plug-in correspondant en fonction de ses propres besoins commerciaux, puis crée son propre compilé, alors assurez-vous de faire attention aux plug-ins lors de la compilation. N'oubliez pas de compiler certains plug-ins et essayez de le faire. garder les fonctionnalités de nginx inchangées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!