Comando no válido 'SSLOpenSSLConfCmd', quizás mal escrito o definido por un módulo no incluido en la configuración del servidor

10

Como cualquier otro administrador, estoy trabajando en la solución de Logjam .

He actualizado a Apache 2.4.12 y openssl 1.0.2a en mi caja centos 6.6.

Cuando inicio apache, veo que aparece este mensaje de error:

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

Aquí está mi información de compilación de 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á incluido en mi httpd.conf:

LoadModule ssl_module modules/mod_ssl.so

¿Qué me estoy perdiendo?

ryanlraines
fuente
1
El sitio weakdh.org/sysadmin ha tenido (continúa teniendo a partir de este escrito) errores tipográficos / inexactitudes antes: serverfault.com/questions/706014/…
austinian

Respuestas:

3

El SSLOpenSSLConfCmd sólo está disponible en httpd 2.4.8 más adelante.

Sin embargo, aún puede generar y usar sus propios parámetros DH en versiones anteriores, como se explica bien aquí :

Si está utilizando Apache con LibreSSL, o Apache 2.4.7 y OpenSSL 0.9.8a o posterior, puede agregar los DHparams que generó anteriormente al final de su archivo de certificado. La documentación para eso está aquí y abajo:

También se pueden agregar parámetros DH personalizados y un nombre de curva EC para claves efímeras al final del primer archivo configurado mediante SSLCertificateFile. Esto es compatible con la versión 2.4.7 o posterior. Dichos parámetros se pueden generar utilizando los comandos openssl dhparam y openssl ecparam. Los parámetros se pueden agregar como están al final del primer archivo de certificado. Solo el primer archivo se puede usar para parámetros personalizados, ya que se aplican independientemente del tipo de algoritmo de autenticación.

Simplemente use cat para agregar dhparams.pem a su archivo de certificado:

cat dhparams.pem >> cert.pem
Dario Seidl
fuente
0

Por documento de Apache: el conjunto de SSLOpenSSLConfCmdcomandos disponibles depende de la versión de OpenSSL (necesidad) que se utilice mod_ssl(al menos se requiere la versión 1.0.2). Para obtener una lista de los nombres de comandos admitidos, consulte la sección Comandos del archivo de configuración admitidos en la página del manual SSL_CONF_cmd (3) para OpenSSL.

Verifique los comandos que está utilizando con SSLOpenSSLConfCmd

chetangb
fuente
No pude encontrar ninguna referencia al comando 'SSLOpenSSLConfCmd' en ningún lugar de los documentos de openssl.org.
ryanlraines
puede estar usando SSLOpenSSLConfCmd nombre-comando nombre-comando en su httpd.conf o su archivo conf personalizado (conf.d / *) httpd.apache.org/docs/trunk/mod/mod_ssl.html
chetangb
0

La directiva SSLOpenSSLConfCmd disponible en httpd 2.4.8 (que no se lanzó) y posteriores, si se utiliza OpenSSL 1.0.2 o posterior.

Cambios con Apache 2.4.8 (no publicado) ... mod_ssl: agregue soporte para los comandos de configuración de OpenSSL mediante la introducción de la directiva SSLOpenSSLConfCmd. [Stephen Henson, marca Kaspar] ...

Construir APR

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

Construir 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

Construye 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
...

Verifique 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

Verifique la configuración de 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

Configuración de host virtual

# 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>

Resultado de la prueba

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

ALex_hha
fuente