Apache-ubuntu-phpウェブサーバーをセットアップしようとしています。私のウェブサーバーは複数のSSLサイトをホストし、各SSLサイトには独自のIPアドレスがあります(これを行うためのより良い方法がない限り)。
したがって、最初のステップは、Apacheに少なくとも2つの異なるIPアドレスを認識させることだと思います。現在、私は http://mysite.com と https://mysite.com のWebサイトのSSLバージョンと非SSLバージョンを持っています。現在、どちらもサーバーで実行していますが、両方で異なるIPアドレスを使用することはできません。現在、どちらもIP1.1.1.1を使用しています。 2番目のIPアドレス2.2.2.2を購入しましたが、 https://mysite.com はそれを受け入れず、Firefoxはエラー「ssl_error_rx_record_too_long」で文句を言います。これが私の2つの仮想ホストファイルの外観です
/ etc/Apache2/site-enabled/000-default
#NameVirtualHost 1.1.1.1:80
#<VirtualHost 1.1.1.1:80>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/Apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/Apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
/etc/Apache2/site-enabled/mysite.com
<VirtualHost 1.1.1.1:80>
ServerAdmin [email protected]
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /srv/www/mysite.com/public_html/
ErrorLog /srv/www/mysite.com/logs/error.log
CustomLog /srv/www/mysite.com/logs/access.log combined
</VirtualHost>
<IfModule mod_ssl.c>
#<VirtualHost 2.2.2.2:443>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /srv/www/mysite.com/public_html/
ErrorLog /srv/www/mysite.com/logs/error.log
CustomLog /srv/www/mysite.com/logs/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/localcerts/www.mysite.com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/www.mysite.com.pem
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</VirtualHost>
</IfModule>
Mysite.comで、<VirtualHost *:443>を<VirtualHost 2.2.2.2:443>に置き換えると、Firefoxはエラー「ssl_error_rx_record_too_long」で文句を言います。
したがって、3番目のIPアドレスで別のSSL証明書を使用して/etc/Apache2/site-enabled/mysite2.comを作成して有効にしようとすると、Apacheは「重複」の問題について文句を言います。
誰かがサーバーを起動して、異なるドメインで複数のSSL Webサイトをホストできるようにする方法を教えてもらえますか? SSL証明書をIE 7 +、FF、およびWinXP、Vista、Win7、OSXなどの一般的なOSのSafariで機能させたい。
/etc/Apache2/ports.confファイルを次のように調整して、サーバーでこれを設定しました。
<IfModule mod_ssl.c>
NameVirtualHost *:443
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
NameVirtualHost *:443
Listen 443
</IfModule>
これで、/ etc/Apache2/sites-enabled/mysite.comを編集して使用できるようになります(例を短くするために一部のコードは省略されています)。
<VirtualHost *:443>
ServerName mysite1.com
SSLCertificateFile /etc/ssl/localcerts/www.mysite1.com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/www.mysite1.com.pem
</VirtualHost>
<VirtualHost *:443>
ServerName mysite2.com
SSLCertificateFile /etc/ssl/localcerts/www.mysite2.com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/www.mysite2.com.pem
</VirtualHost>
あなたが好きなだけ多くのvhostsのために。
編集:セカンドオピニオンが必要ですか?ここに行く: http://forum.slicehost.com/comments.php?DiscussionID=3244
現在確認できないので、これは大げさな推測です。ファイルは通常、アルファベット順に読み取られます。あなたがそれらを逆の順番で読んでもらうと、あなたはもっと幸運になるかもしれません。 000-defaultの名前を500-defaultに変更し、400-myhostを使用します。 Apacheがデフォルトのホストを好む場所(最初または最後)を思い出せません。しかし、あなたが言うこと(重複)から、それは最後かもしれません