คำสั่งไม่ถูกต้อง 'SSLOpenSSLConfCmd' อาจถูกสะกดผิดหรือถูกกำหนดโดยโมดูลที่ไม่รวมอยู่ในการกำหนดค่าเซิร์ฟเวอร์


10

เหมือนทุกผู้ดูแลระบบอื่น ๆ I "m ทำงานผ่าน logjam แก้ไข

ฉันได้อัพเกรดเป็น Apache 2.4.12 และ openssl 1.0.2a บนกล่อง centos ของฉัน 6.6

เมื่อฉันเริ่ม apache ฉันเห็นข้อความแสดงข้อผิดพลาดนี้ส่งคืน:

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

นี่คือข้อมูลการสร้าง 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 รวมอยู่ใน httpd.conf ของฉัน:

LoadModule ssl_module modules/mod_ssl.so

ฉันกำลังคิดถึงอะไร


1
เว็บไซต์ weakdh.org/sysadmin ได้พิมพ์ผิด / ผิดพลาดต่อไปก่อนหน้านี้: serverfault.com/questions/706014/…
austinian

คำตอบ:


3

SSLOpenSSLConfCmdจะใช้ได้เฉพาะใน httpd 2.4.8 ภายหลัง

อย่างไรก็ตามคุณยังสามารถสร้างและใช้ DH params ของคุณเองในเวอร์ชั่นก่อนหน้าได้ดังที่อธิบายไว้ที่นี่ :

หากคุณกำลังใช้ Apache กับ LibreSSL หรือ Apache 2.4.7 และ OpenSSL 0.9.8a หรือใหม่กว่าคุณสามารถผนวก DHparams ที่คุณสร้างไว้ก่อนหน้านี้จนถึงตอนท้ายของไฟล์ใบรับรองของคุณ เอกสารสำหรับสิ่งที่อยู่ที่นี่และด้านล่าง:

พารามิเตอร์ DH ที่กำหนดเองและชื่อเส้นโค้ง EC สำหรับคีย์ชั่วคราวยังสามารถเพิ่มที่ส่วนท้ายของไฟล์แรกที่กำหนดค่าโดยใช้ SSLCertificateFile รองรับเวอร์ชัน 2.4.7 หรือใหม่กว่า พารามิเตอร์ดังกล่าวสามารถสร้างขึ้นได้โดยใช้คำสั่ง openssl dhparam และ openssl ecparam พารามิเตอร์สามารถเพิ่มตาม - คือจุดสิ้นสุดของไฟล์ใบรับรองแรก ไฟล์แรกเท่านั้นที่สามารถใช้สำหรับพารามิเตอร์ที่กำหนดเองได้เนื่องจากไฟล์เหล่านั้นจะถูกนำไปใช้อย่างอิสระกับประเภทอัลกอริทึมการตรวจสอบสิทธิ์

เพียงใช้ cat เพื่อต่อท้าย dhparams.pem ไปยังไฟล์ใบรับรองของคุณ:

cat dhparams.pem >> cert.pem

0

Per Apache doc - ชุดSSLOpenSSLConfCmdคำสั่งที่ใช้ได้ขึ้นอยู่กับรุ่น OpenSSL (จำเป็น) ที่ใช้สำหรับmod_ssl(ต้องมีเวอร์ชันอย่างน้อย 1.0.2) สำหรับรายการชื่อคำสั่งที่รองรับดูที่ส่วนคำสั่งไฟล์กำหนดค่าที่สนับสนุนในหน้าคู่มือ SSL_CONF_cmd (3)สำหรับ OpenSSL

ตรวจสอบคำสั่งที่คุณใช้ด้วย SSLOpenSSLConfCmd


ฉันไม่พบการอ้างอิงถึงคำสั่ง 'SSLOpenSSLConfCmd' ที่ใดก็ได้ในเอกสารของ openssl.org
ryanlraines

คุณอาจใช้ SSLOpenSSLConfCmd คำสั่งชื่อ - ค่าคำสั่งในคุณ httpd.conf หรือไฟล์ conf ที่กำหนดเองของคุณ (conf.d / *) httpd.apache.org/docs/trunk/mod/mod_ssl.html
chetangb

0

SSLOpenSSLConfCmd มีให้ใช้ใน httpd 2.4.8 (ซึ่งไม่ได้เผยแพร่) และหลังจากนั้นหากใช้ OpenSSL 1.0.2 หรือใหม่กว่า

เปลี่ยนแปลงด้วย Apache 2.4.8 (ไม่ออก) ... mod_ssl: เพิ่มการสนับสนุนสำหรับคำสั่งการกำหนดค่า OpenSSL โดยแนะนำ SSLOpenSSLConfCmd directive [Stephen Henson แบรนด์ Kaspar] ...

สร้างเมษายน

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

สร้าง 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

สร้าง 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
...

ตรวจสอบ 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

ตรวจสอบการตั้งค่า 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

การตั้งค่าโฮสต์เสมือน

# 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 webmaster@example.com
   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>

ผลการทดสอบ

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.