Windows Server 2022配置Apache2.4 HTTPS:带密码密钥文件问题
Windows Server 2022上Apache 2.4 HTTPS配置:带密码密钥的密码提供方案问题
背景
我在Windows Server 2022服务器上配置Apache 2.4的HTTPS连接,使用的CA签名服务提供了PEM格式的CRT证书和带密码加密的KEY文件。根据Apache文档:
- 必须正确配置
SSLPassPhraseDialog - 默认的
builtin选项不兼容Windows exec:和!(管道)选项无兼容性问题,理论上可正常工作
尝试方案及异常
服务器已部署Django应用并安装了Python,我尝试用Python脚本输出密码到标准输出,但启动Apache时报错:AH02580: Init: Pass phrase incorrect for key
排查后确认:
- Apache能定位到Python脚本(重命名脚本后会提示文件不存在)
- 脚本并未实际执行(没有生成预期的输出文件)
需求
需要以下两种方案之一的指导:
- 让Python脚本正常运行的方法
- 无需Python的密码提供替代方案
重要说明:我已知晓可通过OpenSSL移除密钥文件的密码且已验证可行,但希望找到更优替代方案。
当前配置
httpd-ssl.conf 相关配置
SSLPassPhraseDialog "exec:D:/the/path/to/passphrase.py" SSLCertificateFile "${SRVROOT}/ssl/my.certificate.file.crt" SSLCertificateKeyFile "${SRVROOT}/ssl/my.key.file.with.passphrase.key"
passphrase.py 内容
print('my_passphrase') with open('D:\\the\\path\\to\\passphrase.out.txt','w') as out_file: out_file.write('it ran')
补充排查信息
- 直接在控制台运行
passphrase.py可正常输出并生成文件 - 重命名脚本后Apache提示找不到文件
- 使用无密码密钥文件时Apache可正常启动
- 使用带密码密钥文件时,Apache报密码错误且无脚本输出文件生成
内容的提问来源于stack exchange,提问作者JDM
相关产品推荐
相关产品推荐

