我无法尝试使用 apache 配置 SSL 反向代理

我无法尝试使用 apache 配置 SSL 反向代理

我正在配置一个 Apache SSL 反向代理,以便从中间件调用后端服务器,我拥有该服务器的客户端证书和密钥。简而言之:

               http               https
middleware -----------> proxy -------------> backend

中间件甚至不知道后端服务器,这是反向代理的技巧。

我(我想我)能够操作代理,因为我收到了

AH02268:代理客户端证书回调:(localhost:80)下游服务器需要客户端证书但未配置,因此我理解代理正在尝试调用后端,但最后一个抱怨是代理没有将证书传递给他。

因此,我错过了正确配置证书的机会。据我所知,我必须编译 SSLCertificate * 和 SSLProxyMachineCertificate* 部分conf.d/modes-enabled/ssl.conf。我尝试了这种方法

SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLEngine off
SSLProxyEngine on
SSLProtocol all

# proxy
SSLProxyMachineCertificateFile /usr/local/etc/apache2/ssl.crt/certificate.pem
SSLProxyMachineCertificateChainFile /usr/local/etc/apache2/ssl.crt/chain.pem
SSLProxyCACertificateFile /usr/local/etc/apache2/ssl.crt/ca.pem

# certificate
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
SSLCertificateFile /usr/local/etc/apache2/ssl.crt/all.pem
SSLCertificateChainFile /usr/local/etc/apache2/ssl.crt/certificate.pem

# key
SSLCertificateKeyFile /usr/local/etc/apache2/ssl.key/server.key
SSLPassPhraseDialog  exec:/usr/local/etc/apache2/pwf.sh

几点说明:

  • certificate.pem是服务器证书。
  • chain.pem是证书的中间链,不包括边界。
  • ca.pem是根 CA 证书。
  • server.key是 RSA 私钥

我用 pwf.sh 脚本替换了输入密码的正常对话框模式,但我甚至无法启动 apache,因为我有此消息

AH02252:为 SSL 代理配置的客户端证书不完整(丢失或加密私钥?)[ssl:emerg] [pid 12484]
AH02312:初始化 mod_ssl 时发生致命错误,退出。AH00016:配置失败

现在我(遗憾地)读到,没有办法解决这个问题,因为正如 apache.org 网站所说,在所有 SSLProxyMachine* 指令下:

(目前不支持加密私钥)

我迷路了吗?

答案1

您自己已经意识到不支持加密私钥。如果您坚持使用加密私钥,那么您就输了。如果可以接受以纯文本提供私钥,请执行此操作。要将加密私钥转换为纯文本密钥,请使用(对于 RSA 密钥)

  openssl rsa -in encrypted_key.pem -out decrypted_key.pem

相关内容