我使用 Apache HTTPD 2.4 和 mod_ssl 版本 2.4.34 建立了一個 EC2 執行個體。我在 AWS ElastiCache 版本 1.6.17 上建立了一個具有傳輸中加密功能的 Memcached 叢集。
目標是讓 HTTPD 將 MemCached 與 TLS 一起用於 SSLSessionCache。但是,每當收到請求時,伺服器都會記錄以下內容:
虛擬主機設定檔
...
SSLSessionCache memcache:test-memcache.2dr943.cfg.use1.cache.amazonaws.com:11322
...
ssl_錯誤_日誌
Could not find specified socket in poll list.: AH00790: scache_mc: error setting key 'mod_ssl-session:162534f25cf4152836459039d4c99263a346345e9366230f9a00394f593abcab' with 1447 bytes of data
我可以使用 來驗證 Memcached 叢集是否可存取且功能正常openssl s_client -connect test-memcache.2dr943.cfg.use1.cache.amazonaws.com:11322
。
HTTPD 似乎無法透過傳輸中加密連接到 Memcache 服務。有什麼想法如何解決這個問題嗎?
答案1
您可以用作stunnel
代理來加密預設不支援它的工具的流量。
您可以像這樣設定 stunnel:
/etc/stunnel/stunnel.conf
foreground = no
[memcache]
client = yes
accept = 127.0.0.1:11322
connect = test-memcache.2dr943.cfg.use1.cache.amazonaws.com:11322
CAfile = /etc/pki/tls/certs/ca-certs-bundle.crt
sslVersion = TLS1.2
然後您可以如下更新 httpd memcache 設定:
虛擬主機設定檔
SSLSessionCache memcache:localhost:11322