Comando inválido 'SSLOpenSSLConfCmd', talvez com erro de ortografia ou definido por um módulo não incluído na configuração do servidor

10

Como qualquer outro administrador, estou trabalhando na correção do Logjam .

Atualizei para o Apache 2.4.12 e o openssl 1.0.2a na minha caixa do centos 6.6.

Quando inicio o apache, vejo a mensagem de erro retornada:

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

Aqui está o meu apache build info:

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á incluído no meu httpd.conf:

LoadModule ssl_module modules/mod_ssl.so

o que estou perdendo?

ryanlraines
fonte
1
O site weakdh.org/sysadmin teve (continua a ter como esta escrito) erros / imprecisões antes: serverfault.com/questions/706014/...
de Austin

Respostas:

3

O SSLOpenSSLConfCmd está disponível apenas no httpd 2.4.8 posterior.

No entanto, você ainda pode gerar e usar seus próprios parâmetros DH nas versões anteriores, conforme explicado aqui :

Se você estiver usando o Apache com LibreSSL, ou Apache 2.4.7 e OpenSSL 0.9.8a ou posterior, poderá anexar os DHparams gerados anteriormente ao final do seu arquivo de certificado. A documentação para isso está aqui e abaixo:

Parâmetros DH personalizados e um nome de curva EC para chaves efêmeras também podem ser adicionados ao final do primeiro arquivo configurado usando SSLCertificateFile. Isso é suportado na versão 2.4.7 ou posterior. Esses parâmetros podem ser gerados usando os comandos openssl dhparam e openssl ecparam. Os parâmetros podem ser adicionados como estão no final do primeiro arquivo de certificado. Somente o primeiro arquivo pode ser usado para parâmetros personalizados, pois eles são aplicados independentemente do tipo de algoritmo de autenticação.

Basta usar cat para anexar o dhparams.pem ao seu arquivo de certificado:

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

Por documento Apache - O conjunto de SSLOpenSSLConfCmdcomandos disponíveis depende da versão do OpenSSL (necessidade) utilizada mod_ssl(pelo menos a versão 1.0.2 é necessária). Para obter uma lista dos nomes de comandos suportados, consulte a seção Comandos do arquivo de configuração suportados na página de manual SSL_CONF_cmd (3) do OpenSSL.

Verifique os comandos que você está usando com SSLOpenSSLConfCmd

chetangb
fonte
Não encontrei nenhuma referência ao comando 'SSLOpenSSLConfCmd' em nenhum lugar nos documentos do openssl.org.
Ryanlraines
você pode estar usando SSLOpenSSLConfCmd command-name command-value em seu httpd.conf ou em seu arquivo conf personalizado (conf.d / *) httpd.apache.org/docs/trunk/mod/mod_ssl.html
chetangb
0

Diretiva SSLOpenSSLConfCmd disponível no httpd 2.4.8 (que não foi lançado) e posterior, se estiver usando o OpenSSL 1.0.2 ou posterior.

Alterações no Apache 2.4.8 (não lançado) ... mod_ssl: adicione suporte aos comandos de configuração do OpenSSL introduzindo a diretiva SSLOpenSSLConfCmd. [Stephen Henson, marca 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

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

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 as configurações do 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

Configurações 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 do teste

insira a descrição da imagem aqui

insira a descrição da imagem aqui

ALex_hha
fonte