AH00898:与远程服务器 (localhost) 进行 SSL 握手时出错

AH00898:与远程服务器 (localhost) 进行 SSL 握手时出错

我正在尝试在我的 Debian 10 (buster) 服务器上启动 GhostCMS 实例。我计划使用 apache (v2.4.38) 反向代理来执行此操作。对于 Ghost 设置,我使用了 ghost-cli,如文档中所述。(ghost install && ghost start)它或多或少运行良好(除了 Nginx 配置部分以及 LetsEncrypt 部分 - 我后来手动启动了它)

我的 Apache HTTP 配置如下所示:

<VirtualHost *:80>
DocumentRoot /var/www/ghost
ServerName blog.domain.xyz
ServerAlias www.blog.domain.xyz


ProxyPreserveHost On
ProxyRequests Off

ProxyPass / https://127.0.0.1:2368/
ProxyPassReverse / https://127.0.0.1:2368/

RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

我的 Apache HTTPS 配置如下:

<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/ghost
ServerName blog.domain.xyz
ServerAlias www.blog.domain.xyz

ProxyPreserveHost On
ProxyRequests Off

SSLEngine On
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off

ProxyPass / https://127.0.0.1:2368/
ProxyPassReverse / https://127.0.0.1:2368/

ErrorLog ${APACHE_LOG_DIR}/blog.domain.xyz_error.log
CustomLog ${APACHE_LOG_DIR}/blog.domain.xyz_access.log combined


RewriteCond %{SERVER_NAME} =blog.domain.xyz [OR]
RewriteCond %{SERVER_NAME} =www.blog.domain.xyz

SSLCertificateFile /etc/letsencrypt/live/blog.domain.xyz/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/blog.domain.xyz/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

仅供参考:所有页面均使用 a2ensite 配置名称启用,并且 ghost 仍在其默认端口 (localhost:2368) 上运行

每当我尝试加载页面时,都会收到 HTTP 500 代理错误,原因如下:Error during SSL Handshake with remote server

我已经尝试了一些教程,例如https://www.codersbistro.com/blog/setting-up-ghost-with-apache-http-server/但他们还是无法帮助我。

希望你们中的一些人可以给我提供一个不错的提示:-)

答案1

我已经尝试了一些教程,例如https://www.codersbistro.com/blog/setting-up-ghost-with-apache-http-server/但他们还是无法帮助我。

本教程包含以下部分:

ProxyPass / http://localhost:2368/
ProxyPassReverse / http://localhost:2368/

与此相反,您的配置包括以下内容

ProxyPass / https://127.0.0.1:2368/
ProxyPassReverse / https://127.0.0.1:2368/

注意到区别了吗?您尝试使用 https 访问端口 2368 上的内部服务器,而本教程中则使用 http。后者可能是正确的。请注意,https 处理由 Apache 完成,而不是由内部 CMS 服务器完成,与 Apache 相反,内部 CMS 服务器不应从主机外部访问。

相关内容