马红亮发表的博客

世界上的任何人

         2010年开始在中国教育人博客上发博客,其中有一些Moodle和系统管理有关的博客,还是有必要整理一下与大家共享:

         原文发表于2016-08-28:

        通常,Moodle网站会涉及到用户的注册、登录等隐私信息,这些信息最好通过加密的方式传输,这就需要Moodle网站安装SSL证书,然后启用https
         在生成和安装SSL证书方面,不建议自己在Linux系统上生成self-signed certificates,过程比较复杂,也不宜应用于正式对外运行的网站。最好直接从CA处购买SSL证书。现在国内的SSL证书价格也比较便宜,也有保证。根据需要选择购买,按照说明在Apache上设置相关参数(可参考SSL证书安装指南 - Apache-SSL),然后在Moodle根目录的config.php中将http换成https即可全站启用https。当然你可以在 网站管理——安全——http安全中,启用“使用https登录”,也就是只在登录页面启用https,这样可以兼顾Moodle隐私信息安全和整个网站访问的流畅性。如果全站启用https会影响访问速度,但总体影响太不大。
       关于Moodle网站到底是否应该全站启用https,官方核心开发人员Dan Marsden认为(Moodle entirely over SSL?):

No. If you're concerned about security you should really use full-time SSL.

SSL for logins may prevent the users password from being obtained but the users session will still be passed unencrypted so could potentially be intercepted (for example on a public wifi point) allowing someone malicious to impersonate the user.

……the overhead caused by running full-time ssl is very minimal - and in most cases you won't notice a difference -

       最后别忘了打开防火墙UFW的443端口,https的默认端口。
       配置完这些之后,还有一项设置挺有用的,就是使整个网站实现从http自动跳转到https,网上有许多说法,但内容不一致。查到国外王牌云服务器提供商godaddy的帮助信息,非常管用(Redirect HTTP to HTTPS automatically)。可以实现把整个网站所有的http链接和资源(指向自身网站)都一次性的转换为https:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
标签: