Perintah 'SSLOpenSSLConfCmd' tidak valid, mungkin salah eja atau ditentukan oleh modul yang tidak termasuk dalam konfigurasi server

10

Seperti setiap admin lainnya, saya sedang mengerjakan perbaikan Logjam .

Saya telah meningkatkan ke Apache 2.4.12 dan openssl 1.0.2a pada kotak centos 6.6 saya.

Ketika saya memulai apache, saya melihat pesan kesalahan ini dikembalikan:

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

Ini info build apache saya:

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 termasuk dalam httpd.conf saya:

LoadModule ssl_module modules/mod_ssl.so

Apa yang saya lewatkan?

ryanlraines
sumber
1
Situs lemahdh.org/sysadmin telah (masih memiliki pada tulisan ini) kesalahan ketik / ketidakakuratan sebelumnya: serverfault.com/questions/706014/…
austinian

Jawaban:

3

The SSLOpenSSLConfCmd hanya tersedia pada httpd 2.4.8 kemudian.

Namun, Anda masih dapat membuat dan menggunakan params DH Anda sendiri pada versi sebelumnya, seperti yang dijelaskan di sini :

Jika Anda menggunakan Apache dengan LibreSSL, atau Apache 2.4.7 dan OpenSSL 0.9.8a atau lebih baru, Anda dapat menambahkan DHparams yang Anda buat sebelumnya ke akhir file sertifikat Anda. Dokumentasi untuk itu ada di sini dan di bawah ini:

Parameter DH khusus dan nama kurva EC untuk kunci sementara, juga dapat ditambahkan ke akhir file pertama yang dikonfigurasi menggunakan SSLCertificateFile. Ini didukung dalam versi 2.4.7 atau yang lebih baru. Parameter tersebut dapat dihasilkan menggunakan perintah openssl dhparam dan openssl ecparam. Parameter dapat ditambahkan apa adanya ke akhir file sertifikat pertama. Hanya file pertama yang dapat digunakan untuk parameter khusus, karena diterapkan secara terpisah dari jenis algoritma otentikasi.

Cukup gunakan cat untuk menambahkan dhparams.pem ke file sertifikat Anda:

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

Per Apache doc - Seperangkat SSLOpenSSLConfCmdperintah yang tersedia tergantung pada versi OpenSSL (perlu) yang digunakan mod_ssl(setidaknya versi 1.0.2 diperlukan). Untuk daftar nama perintah yang didukung, lihat bagian Perintah file konfigurasi yang didukung di halaman manual SSL_CONF_cmd (3) untuk OpenSSL.

Verifikasi perintah yang Anda gunakan SSLOpenSSLConfCmd

chetangb
sumber
Saya tidak dapat menemukan referensi ke perintah 'SSLOpenSSLConfCmd' di mana saja di dokumen openssl.org.
ryanlraines
Anda mungkin menggunakan SSLOpenSSLConfCmd-nama-nilai perintah perintah di httpd.conf Anda atau file conf kustom Anda (conf.d / *) httpd.apache.org/docs/trunk/mod/mod_ssl.html
chetangb
0

Arahan SSLOpenSSLConfCmd tersedia di httpd 2.4.8 (yang tidak dirilis) dan yang lebih baru, jika menggunakan OpenSSL 1.0.2 atau lebih baru.

Perubahan dengan Apache 2.4.8 (tidak dirilis) ... mod_ssl: Tambahkan dukungan untuk perintah konfigurasi OpenSSL dengan memperkenalkan arahan SSLOpenSSLConfCmd. [Stephen Henson, Kaspar Brand] ...

Bangun April

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

Bangun 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

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

Periksa 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

Periksa pengaturan 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

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

Hasil tes

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

ALex_hha
sumber