HttpのWebサイトがありますが、ショッピングカート用の特定のディレクトリのhttps用にポートが設定されています。次に、同じサイトの別のディレクトリでもSSLを使用したいと思います。それを設定するにはどうすればよいですか?
ドキュメント と同様にすべての設定ファイルを調べてみましたが、理解できません。
私もこれをhttpd.configで設定しようとしました
<VirtualHost 127.0.0.1:[ssl port]> #also tried *:[ssl port] and [actual IP]:[ssl port]
ServerAdmin [email protected]
DocumentRoot "C:/path/sslNeededDir"
ServerName www.example.com
</VirtualHost>
このディレクトリ内のページがsslポートを使用してhttpsになることを期待していますが、それは何もしませんでした。どんな助けも大歓迎です。
更新:これは最終的に移行されました。私はまだこれに関する確かな答えを探しています。誰もが私を助けることができれば、それは大歓迎です。
エイリアスを使用してこれを行うことは、おそらく最も簡単な方法です。引数のために、これがSSLによって提供されるディレクトリの現在の<VirtualHost>
であるとしましょう(興味があるなら、私のdevサーバーから持ち上げられた既知の良い設定):
<VirtualHost 11.22.33.44:443>
# Basic vhost config
ServerAdmin [email protected]
ServerName secure.mysite.com:443
# Directory configuration
DocumentRoot "/WebServer/virtualhosts/secure.mysite.com/htdocs"
<Directory "/WebServer/virtualhosts/secure.mysite.com/htdocs">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
# Logging configuration
# Rem: ssl logging format defined in httpd.conf
ErrorLog "/WebServer/virtualhosts/secure.mysite.com/logs/error.log"
CustomLog "/WebServer/virtualhosts/secure.mysite.com/logs/access.log" ssl
# SSL configuration
# Rem: This works properly, fingerpoken ist verboten!
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/var/Apache/conf/certs/secure-mysite-com.cert"
SSLCertificateKeyFile "/var/Apache/conf/certs/secure-mysite-com.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/var/Apache/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
上記の設定から(できれば)見ることができるように、仮想ホストのルートをリクエストするとき、つまりhttps://secure.mysite.com/
をリクエストするとき-ローカルディレクトリ/WebServer/virtualhosts/secure.mysite.com/htdocs
を使用します。
また、仮想ホストを適切にセットアップすることは、いくつかのServerName
ディレクティブとDocumentRoot
ディレクティブをつなぎ合わせるという些細なケースではありません。期待どおりに正確に調整する必要があります。ほとんどの場合、ホスト固有のロギングが必要です。SSLを使用している場合は、いくつかの基本的な動作を定義し、サーバー側スクリプトで情報を利用できるようにする必要があります。IE特定のコードおよび構成(grrr ...)などなど.
ここで、同じ証明書とホスト名を使用して/WebServer/virtualhosts/secure.someothersite.com/htdocs
を提供したいとしましょう。最初に、どのようにアクセスできるようにするかを決定する必要があります。そして、アドレスhttps://secure.mysite.com/someothersite/
を使用することを決定します。元のドキュメントルートにシンボリックリンクを作成して、それを実行することもできますが、ローカルファイルシステムで作業する他の人にとっては混乱を招く可能性があります。いいえ、代わりに前述の Alias
ディレクティブを使用します。
これの基本的な構文はAlias /url-path /full/file/system/path
です。したがって、次の行が必要です。
Alias /someothersite /WebServer/virtualhosts/secure.someothersite.com/htdocs
ファイルパスのいずれかの末尾にスラッシュを含めるnotを含めたことに注意してください。これは、使用方法が直感的で、期待どおりに動作するために重要です。すばらしい-これで、Apacheは/someothersite
を要求したときに、実際にドキュメントルートにないディレクトリを実際に読みたいと認識します。そして、あなたはそれが仕事だと思うかもしれませんが、待ってください...
<Directory>
セクションはどうですか?これはDocumentRoot
として定義されたディレクトリへのアクセス許可のみを与えるため、エイリアスディレクトリ用に別のセクションが必要になります。引数のために、元のディレクトリセクションをコピーして貼り付け、適用するパスを変更してみましょう。
<Directory "/WebServer/virtualhosts/secure.someothersite.com/htdocs">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
Now動作します。
最終的な構成を見てみましょう。
<VirtualHost 11.22.33.44:443>
# Basic vhost config
ServerAdmin [email protected]
ServerName secure.mysite.com:443
# Directory configuration
DocumentRoot "/WebServer/virtualhosts/secure.mysite.com/htdocs"
<Directory "/WebServer/virtualhosts/secure.mysite.com/htdocs">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
# Alias for /someothersite virtual directory
Alias /someothersite /WebServer/virtualhosts/secure.someothersite.com/htdocs
<Directory "/WebServer/virtualhosts/secure.someothersite.com/htdocs">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
# Logging configuration
# Rem: ssl logging format defined in httpd.conf
ErrorLog "/WebServer/virtualhosts/secure.mysite.com/logs/error.log"
CustomLog "/WebServer/virtualhosts/secure.mysite.com/logs/access.log" ssl
# SSL configuration
# Rem: This works properly, fingerpoken ist verboten!
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "/var/Apache/conf/certs/secure-mysite-com.cert"
SSLCertificateKeyFile "/var/Apache/conf/certs/secure-mysite-com.key"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/var/Apache/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>