Commande non valide «SSLOpenSSLConfCmd», peut-être mal orthographiée ou définie par un module non inclus dans la configuration du serveur

10

Comme tous les autres administrateurs, je travaille sur le correctif Logjam .

J'ai mis à niveau vers Apache 2.4.12 et openssl 1.0.2a sur ma boîte centos 6.6.

Lorsque je démarre Apache, je vois ce message d'erreur renvoyé:

Invalid command 'SSLOpenSSLConfCmd', perhaps misspelled or defined by a module not included in the server configuration

Voici mes informations de construction apache:

Server version: Apache/2.4.12 (Unix)
Server built:   Jun  8 2015 22:04:38
Server's Module Magic Number: 20120211:41
Server loaded:  APR 1.4.5, APR-UTIL 1.3.12
Compiled using: APR 1.4.5, APR-UTIL 1.3.12
Architecture:   64-bit
Server MPM:     worker
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/opt/installs/apache/2_4_12"
 -D SUEXEC_BIN="/opt/installs/apache/2_4_12/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"    

mod_ssl est inclus dans mon httpd.conf:

LoadModule ssl_module modules/mod_ssl.so

Qu'est-ce que je rate?

ryanlraines
la source
1
Le site faiblessedh.org/sysadmin a eu (continue d'avoir au moment de la rédaction de ce document) des fautes de frappe / inexactitudes auparavant: serverfault.com/questions/706014/…
austinian

Réponses:

3

Le SSLOpenSSLConfCmd est disponible uniquement sur httpd 2.4.8 plus tard.

Cependant, vous pouvez toujours générer et utiliser vos propres paramètres DH sur les versions antérieures, comme expliqué ici :

Si vous utilisez Apache avec LibreSSL ou Apache 2.4.7 et OpenSSL 0.9.8a ou version ultérieure, vous pouvez ajouter les DHparams que vous avez générés précédemment à la fin de votre fichier de certificat. La documentation pour cela est ici et ci-dessous:

Des paramètres DH personnalisés et un nom de courbe EC pour les clés éphémères peuvent également être ajoutés à la fin du premier fichier configuré à l'aide de SSLCertificateFile. Ceci est pris en charge dans la version 2.4.7 ou ultérieure. Ces paramètres peuvent être générés à l'aide des commandes openssl dhparam et openssl ecparam. Les paramètres peuvent être ajoutés tels quels à la fin du premier fichier de certificat. Seul le premier fichier peut être utilisé pour les paramètres personnalisés, car ils sont appliqués indépendamment du type d'algorithme d'authentification.

Utilisez simplement cat pour ajouter le fichier dhparams.pem à votre fichier de certificat:

cat dhparams.pem >> cert.pem
Dario Seidl
la source
0

Per Apache doc - L'ensemble des SSLOpenSSLConfCmdcommandes disponibles dépend de la version d'OpenSSL (besoin) utilisée mod_ssl(au moins la version 1.0.2 est requise). Pour une liste des noms de commandes pris en charge, consultez la section Commandes de fichiers de configuration prises en charge dans la page de manuel SSL_CONF_cmd (3) pour OpenSSL.

Vérifiez les commandes que vous utilisez avec SSLOpenSSLConfCmd

chetangb
la source
Je n'ai trouvé aucune référence à la commande «SSLOpenSSLConfCmd» nulle part sur les documents de openssl.org.
ryanlraines
vous utilisez peut-être SSLOpenSSLConfCmd nom-commande valeur-commande dans votre httpd.conf ou votre fichier de conf personnalisé (conf.d / *) httpd.apache.org/docs/trunk/mod/mod_ssl.html
chetangb
0

Directive SSLOpenSSLConfCmd disponible dans httpd 2.4.8 (qui n'a pas été publié) et versions ultérieures, si vous utilisez OpenSSL 1.0.2 ou versions ultérieures.

Modifications avec Apache 2.4.8 (non publié) ... mod_ssl: ajout de la prise en charge des commandes de configuration OpenSSL en introduisant la directive SSLOpenSSLConfCmd. [Stephen Henson, marque Kaspar] ...

Build APR

# ./configure --host=x86_64-redhat-linux-gnu --build=x86_64-redhat-linux-gnu --prefix=/opt/apr-1.5.2 --with-devrandom=/dev/urandom

Créer APR-UTIL

# ./configure --prefix=/opt/apr-util-1.5.4 --with-ldap --with-crypto --with-openssl=/opt/openssl-1.0.2a --with-apr=/opt/apr-1.5.2

Build Apache

# ./configure --prefix=/opt/httpd-2.4.12 --enable-mpms-shared=all --with-pcre --enable-mods-shared=all --enable-ssl --with-ssl=/opt/openssl-1.0.2a --with-apr=/opt/apr-1.5.2 --with-apr-util=/opt/apr-util-1.5.4 --enable-session-crypto
...
configure:
  setting INCLUDES to "-I."
  adding "-I$(top_srcdir)/os/$(OS_DIR)" to INCLUDES
  adding "-I$(top_srcdir)/include" to INCLUDES
  adding "-I/opt/apr-1.5.2/include/apr-1" to INCLUDES
  adding "-I/opt/apr-util-1.5.4/include/apr-1" to INCLUDES
  adding "-I/opt/openssl-1.0.2a/include" to INCLUDES
...

Vérifiez mod_ssl.so

# ldd mod_ssl.so | grep ssl
        libssl.so.1.0.0 => /opt/openssl-1.0.2a/lib/libssl.so.1.0.0 (0x00007f6f3c6bd000)
        libcrypto.so.1.0.0 => /opt/openssl-1.0.2a/lib/libcrypto.so.1.0.0 (0x00007f6f3c287000)

# strings mod_ssl.so | grep SSLOpenSSLConfCmd
SSLOpenSSLConfCmd
AH02407: "SSLOpenSSLConfCmd %s %s" failed for %s
AH02556: "SSLOpenSSLConfCmd %s %s" applied to %s

Vérifier les paramètres d'Apache

# ./httpd -v
Server version: Apache/2.4.12 (Unix)
Server built:   Mar 27 2016 16:29:30

# ./httpd -V
Server version: Apache/2.4.12 (Unix)
Server built:   Mar 27 2016 16:29:30
Server's Module Magic Number: 20120211:41
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     event
  threaded:     yes (fixed thread count)
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/opt/httpd-2.4.12"
 -D SUEXEC_BIN="/opt/httpd-2.4.12/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

# /opt/httpd-2.4.12/bin/apachectl -t
Syntax OK

Paramètres d'hôte virtuel

# conf/extra/httpd-ssl.conf
Listen 443
SSLOpenSSLConfCmd DHParameters /etc/pki/httpd/dhparams_2048.pem
SSLCipherSuite kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2
SSLHonorCipherOrder on
SSLPassPhraseDialog  builtin
SSLSessionCache "shmcb:/opt/httpd-2.4.12/logs/ssl_scache(512000)"
SSLSessionCacheTimeout  300
SSLProtocol All -SSLv2 -SSLv3

<VirtualHost _default_:443>

   DocumentRoot "/opt/httpd-2.4.12/htdocs"
   ServerName ssllabs.example.com:443
   ServerAdmin [email protected]
   ErrorLog "/opt/httpd-2.4.12/logs/error_log"
   TransferLog "/opt/httpd-2.4.12/logs/access_log"

   SSLEngine on
   SSLCertificateFile /etc/pki/httpd/server.pem
   SSLCertificateKeyFile /etc/pki/httpd/server.key

   <FilesMatch "\.(cgi|shtml|phtml|php)$">
       SSLOptions +StdEnvVars
   </FilesMatch>
   <Directory "/opt/httpd-2.4.12/cgi-bin">
       SSLOptions +StdEnvVars
   </Directory>

   BrowserMatch "MSIE [2-5]" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
   CustomLog "/opt/httpd-2.4.12/logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

</VirtualHost>

Résultat du test

entrez la description de l'image ici

entrez la description de l'image ici

ALex_hha
la source