Nieprawidłowa komenda „SSLOpenSSLConfCmd”, być może błędnie napisana lub zdefiniowana przez moduł nieuwzględniony w konfiguracji serwera

10

Jak każdy inny administrator, I "m roboczego poprzez impasu poprawki .

Uaktualniłem do Apache 2.4.12 i openssl 1.0.2a na moim komputerze Centos 6.6.

Po uruchomieniu apache widzę zwrócony komunikat o błędzie:

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

Oto informacje o mojej kompilacji 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 jest zawarty w moim httpd.conf:

LoadModule ssl_module modules/mod_ssl.so

czego mi brakuje?

ryanlrainy
źródło
1
Witryna slaveh.org/sysadmin miała (nadal występuje w tym piśmie) literówki / nieścisłości przed: serverfault.com/questions/706014/…
austinian

Odpowiedzi:

3

SSLOpenSSLConfCmd jest dostępny tylko na httpd 2.4.8 później.

Jednak nadal możesz generować i używać własnych parametrów DH we wcześniejszych wersjach, jak wyjaśniono tutaj :

Jeśli używasz Apache z LibreSSL lub Apache 2.4.7 i OpenSSL 0.9.8a lub nowszym, możesz dołączyć wygenerowane wcześniej DHparamy na końcu pliku certyfikatu. Dokumentacja tego znajduje się tutaj i poniżej:

Niestandardowe parametry DH i nazwę krzywej EC dla kluczy efemerycznych można również dodać na końcu pierwszego pliku skonfigurowanego za pomocą SSLCertificateFile. Jest to obsługiwane w wersji 2.4.7 lub nowszej. Takie parametry można wygenerować za pomocą poleceń openssl dhparam i openssl ecparam. Parametry można dodawać takie, jakie są na końcu pierwszego pliku certyfikatu. Do parametrów niestandardowych można użyć tylko pierwszego pliku, ponieważ są one stosowane niezależnie od typu algorytmu uwierzytelniania.

Wystarczy użyć cat, aby dołączyć plik dhparams.pem do pliku certyfikatu:

cat dhparams.pem >> cert.pem
Dario Seidl
źródło
0

Według dokumentu Apache - zestaw dostępnych SSLOpenSSLConfCmdpoleceń zależy od wersji (potrzebnej) OpenSSL (wymagana jest mod_sslco najmniej wersja 1.0.2). Aby uzyskać listę obsługiwanych nazw poleceń, zobacz sekcję Obsługiwane polecenia pliku konfiguracyjnego na stronie podręcznika SSL_CONF_cmd (3) dla OpenSSL.

Sprawdź polecenia, których używasz SSLOpenSSLConfCmd

chetangb
źródło
Nigdzie w dokumentach openssl.org nie mogłem znaleźć żadnego odniesienia do polecenia „SSLOpenSSLConfCmd”.
ryanlraines,
możesz używać SSLOpenSSLConfCmd nazwa-polecenia polecenie-wartość w swoim httpd.conf lub niestandardowym pliku conf (conf.d / *) httpd.apache.org/docs/trunk/mod/mod_ssl.html
chetangb
0

Dyrektywa SSLOpenSSLConfCmd dostępna w httpd 2.4.8 (która nie została wydana) i później, jeśli używasz OpenSSL 1.0.2 lub nowszej.

Zmiany w Apache 2.4.8 (nie wydany) ... mod_ssl: Dodaj obsługę komend konfiguracyjnych OpenSSL poprzez wprowadzenie dyrektywy SSLOpenSSLConfCmd. [Stephen Henson, Kaspar Brand] ...

Zbuduj APR

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

Zbuduj 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

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

Sprawdź 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

Sprawdź ustawienia 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

Ustawienia hosta wirtualnego

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

Wynik testu

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

ALex_hha
źródło