往日微忆
文章目录

如今越来越多网站启用 https 访问来加强网站的安全性。本博客网站也是最近才正式使用 https 。启用了 https ,网站要么取消之前的 http 访问,但这样一来,之前的网站内容链接将打不开,这点很多站长都不愿意看到,毕竟网站存在很多年,难免会有一些粉丝,突然切断之前的链接,体验性不佳也不友好;要么就是既可以 http 访问,又可以 https 访问,但这样不能提高网站的安全性。我认为,比较友善的做法是,同时开启 http 和 https ,并设置 http 访问强制跳转至 https 访问。以本站为例,要达到效果就是,如果要访问"  http://www.yiwan.org/index.php/ltd_documents/361-linux-vps-server-login-security.html “,则浏览器自动跳转至访问” https://www.yiwan.org/index.php/ltd_documents/361-linux-vps-server-login-security.html " 。

设置方式,通过搜索,网上教程一大堆,五花八门,如添加 .htaccess  文件作重定向、针对某个目录跳转、针对某个网页跳转等,太过繁杂。偶然网上看到一篇文章(https://www.digitalocean.com/community/questions/redirect-from-http-to-https),外国小哥的方式很合我意,于是采用之,经测试可行,简单方便,在此列出如下:

一、准备工作

(一)网站得使能 ssl ,对于 Apache2 ,用命令:

a2enmod ssl

同时还要使能 rewrite

a2enmod rewrite

(二) /etc/apache2/sites-availables/ 下删除之前的 000-default.conf 和 default-ssl.conf 文件(最好先备份一下),新建一个以网站域名为文件名的文件,以本博客网站为例,新建 www.yiwan.org.conf 文件。

(三) /etc/apache2/sites-enabled/ 下的所有链接文件删除。

二、网站配置

新建的 www.yiwan.org.conf 文件内容如下:

<VirtualHost *:80>
	ServerName www.yiwan.org
	ServerAdmin webmaster@localhost
	DocumentRoot /home/litanid/litanid_WWW/LiTa

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	RewriteEngine on
	RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
	ServerName www.yiwan.org
	ServerAdmin webmaster@localhost
	DocumentRoot /home/litanid/litanid_WWW/LiTa

	SSLEngine on
	SSLCertificateFile /home/litanid/.ssl/apa-letsencrypt/www.yiwan.org/fullchain.pem
	SSLCertificateKeyFile /home/litanid/.ssl/apa-letsencrypt/www.yiwan.org/key.pem

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
</IfModule>

三、后期工作

除以上内容之外,无需添加或修改任何配置。后期工作:

(一)使能网站配置

a2ensite www.yiwan.org.conf

这将自动在 /etc/apache2/sites-enabled/ 下生成指向 /etc/apache2/sites-availables/www.yiwan.org.conf 的软链接文件。

(二)重启 Apache2 ,使设置生效即可。

/etc/init.d/apache2 restart