%20%E3%81%A8%E3%81%AE%20SSL%20%E3%83%8F%E3%83%B3%E3%83%89%E3%82%B7%E3%82%A7%E3%82%A4%E3%82%AF%E4%B8%AD%E3%81%AB%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F.png)
Debian 10 (buster) サーバーで GhostCMS のインスタンスを起動しようとしています。Apache (v2.4.38) リバース プロキシを使用して起動しようと計画しています。Ghost のセットアップには、ドキュメントに記載されているように ghost-cli を使用しました。( ghost install && ghost start
) そして、ほぼ問題なく動作しました (Nginx 構成部分と、後で手動で開始した LetsEncrypt 部分を除いて)
HTTP 用の私の Apache 設定は次のようになります。
<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>
HTTPS 用の私の Apache 設定は次のようになります。
<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 configname を使用して有効になっており、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/
違いに注意してください。チュートリアルでは http を使用していますが、ポート 2368 で内部サーバーにアクセスしようとしています。後者がおそらく正しいでしょう。https の処理は Apache によって行われ、内部 CMS サーバーによって行われないことに注意してください。Apache とは異なり、内部 CMS サーバーはホストの外部からアクセスできないはずです。