环境:ubunt14裸机,apache2,php5
条件:证书(部分商家买域名送一年),域名,为了方便均在root用户下进行的
web目录:/var/www/test
证书目录(自建):/etc/apache2/cert
1.给apache2开启ssl、rewrite
a2enmod ssl
a2enmod rewrite
2.配置https的vhost文件(文件名:443www.conf)
<VirtualHost *:443>
ServerAdmin hkdnxycz@outlook.com
ServerName www.xxxx.com
#证书设置
SSLEngine on
SSLCertificateFile /etc/apache2/cert/www.crt
SSLCertificateKeyFile /etc/apache2/cert/www.key
SSLCertificateChainFile /etc/apache2/cert/bundle.crt
#web根目录
DocumentRoot /var/www/test
#日志
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined </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.
结语:留个笔记,方便大家,同时自己以后用也好找。除代码外纯手打,个别错误还请让他错着吧。。