环境:ubunt14裸机,apache2,php5
条件:证书(部分商家买域名送一年),域名,为了方便均在root用户下进行的
web目录:/var/www/test
证书目录(自建):/etc/apache2/cert
1.给apache2开启ssl、rewrite
a2enmod ssl
a2enmod rewrite
2.配置https的vhost文件(文件名:443www.conf)
1 <VirtualHost *:443> 2 ServerAdmin hkdnxycz@outlook.com 3 ServerName www.xxxx.com 4 #证书设置 5 SSLEngine on 6 SSLCertificateFile /etc/apache2/cert/www.crt 7 SSLCertificateKeyFile /etc/apache2/cert/www.key 8 SSLCertificateChainFile /etc/apache2/cert/bundle.crt 9 #web根目录 10 DocumentRoot /var/www/test 11 #日志 12 ErrorLog ${APACHE_LOG_DIR}/error.log 13 CustomLog ${APACHE_LOG_DIR}/access.log combined 14 15 </VirtualHost>
3.建立链接(site-enabled下)
可以 ln 创建,也可以 a2ensite 443www 创建
4.service apache2 reload(装上那俩模块,感觉放第一步后面更合理一点)
5.service apache2 restart(重启apache2)
---------------------------------------------以上 https可以访问了-------------------------------------
为了让www.xxxx.com和xxxx.com也跳转到https://www.xxxx.com,再改动点东西
6.创建vhost文件(80www.conf)
<VirtualHost *:80> ServerName www.xxxx.com ServerAlias xxxx.com DocumentRoot /var/www/test RewriteEngine On RewriteRule ^/(.*?)$ https://www.xxxx.com/$1 [R] ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
7.重复步骤3和5
现在,无论访问xxxx.com或者www.xxxx.com,都是跳转到https://www.xxxx.com
吐槽:糟心的ubuntu没有apache,自然也没有httpd.conf文件,更没有ssl_module文件咯,本文也是结合网上内容整合的,仅适用于apache2.
结语:留个笔记,方便大家,同时自己以后用也好找。除代码外纯手打,个别错误还请让他错着吧。。