วิธีทำ VirtualHost Port 80 และ Port 443 ให้มีได้หลาย ๆ Web
และ Redirect จาก Http ไป Https
การ Redirect [url]http://stackoverflow.com/questions/4083221/how-to-redirect-all-http-requests-to-https[/url]
การสร้างไฟล์ Certificate [url]https://intranet.sci.com/blog.php?u=3&b=970[/url] หรือจะใช้ไฟล์เดียวกันก็ได้ เก็บไว้ใน /etc/apache2/ssl
ทำได้โดย
1. Backup file เก่าไว้ก่อนเสมอ โดยใช้งคำสั่ง
[code=text]cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default-20150228[/code]
2. แก้ไฟล์ default หรือ 000-default เช่นของจริงใน intranet
[code=text]nano /etc/apache2/sites-available/default[/code]
3. เช่น Code ของ Extranet
[code=text]
####Configuration for Extranet #####
<VirtualHost *:80>
ServerName extranet.scivalve.com
Redirect / https://extranet.scivalve.com/
ServerAdmin nikom@scivalve.com
</VirtualHost>
<VirtualHost *:443>
ServerName extranet.scivalve.com
DocumentRoot /www/extranet
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/owncloud.pem
SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
ServerAdmin nikom@scivalve.com
<Directory /www/extranet/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName extranet.sci.com
Redirect / https://extranet.sci.com/
ServerAdmin nikom@scivalve.com
</VirtualHost>
<VirtualHost *:443>
ServerName extranet.sci.com
DocumentRoot /www/extranet
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/owncloud.pem
SSLCertificateKeyFile /etc/apache2/ssl/owncloud.key
ServerAdmin nikom@scivalve.com
<Directory /www/extranet/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
[/code]
4. /etc/init.d/apache2 restart
ถ้ามี Error ตอน Restart apche
* Restarting web server apache2
[Sun Jun 17 17:57:49 2012] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
... waiting [Sun Jun 17 17:57:50 2012] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
4.1. ให้แก้ /etc/apache2/ports.conf โดยเพิ่ม NameVirtualHost *:443 ตามตัวอย่าง
[code=text]
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
NameVirtualHost *:443
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
NameVirtualHost *:443
Listen 443
</IfModule>
[/code]
แล้ว Restart apache2 อีกรอบ
[url]http://stackoverflow.com/questions/10658017/apache-error-default-virtualhost-overlap-on-port-443[/url]
ถ้ามี Error
* Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Sat Feb 28 09:00:20 2015] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
4.2. ให้แก้ไฟล์ nano /etc/apache2/apache2.conf โดยเพิ่ม
ServerName localhost
ไว้ล่างสุดของไฟล์ แล้ว Restart apache2 อีกรอบ
[url]http://askubuntu.com/questions/256013/could-not-reliably-determine-the-servers-fully-qualified-domain-name[/url]
ตัวอย่างไฟล์
เก่า : [attachment=0]default-20140228.txt[/attachment]
ใหม่ : [attachment=1]default.txt[/attachment]
*ลดนามสกุล .txt ออกนำเอาไฟล์ไปใช้จริงได้เลย
No comments:
Post a Comment