Windows Server 部署REDcap(七)— SSL
Configuration Check 中 Secondary tests 第 1 项异常就是REDCap系统没有使用 SSL 证书:

安全套接层(Secure Sockets Layer,SSL)是一种安全协议,已成为互联网上保密通信的工业标准。
SSL证书让网站实现加密传输,可以很好的防止用户隐私信息如用户名、密码、交易记录、居住信息等被窃取和纂改。

更多内容:
我们使用REDCap 主要用来储存和交换数据,为了数据安全,SSL证书是必备的,好在阿里云有免费版本 SSL 证书,根据指南安装也很简单。
打开443端口(HTTPS服务默认端口):
登录ECS控制台
选中REDCap 实例,点击 — 本实例安全组 — 配置规则:

设置如下:

确定退出。
申请SSL 证书:
登录阿里云,控制台 — 产品与服务 — 安全(云盾) — SSL证书 — 购买证书,选择免费版(个人)DV:

这是免费的单域名证书,购买时长1年,1年后可以再次购买。

确认支付后回到 SSL 控制台,点击证书申请:

填写域名和相关信息:
填写已申请的 REDCap 域名,申请人资料默认的注册阿里云账号个人信息,域名验证方式 — 自动 DNS 验证。

点击下一步,一般自动审核,几分钟就可签发。

部署SSL证书
下载 SSL 证书
SSL 证书签发后,控制台右侧会出现下载选项:

选择 Apache 下载:

上传 SSL 证书到服务器
将下载证书文件解压:得到3个文件 ,命名格式为数字+域名+后缀,后缀分别是 .key, chain.crt、pulic.crt。

登录服务器,在 C:/xampp/apche 下新建文件夹 cert,并将上述3个证书文件上传到C:/xampp/apche/cert。
配置 SSL 证书
Apache 加载 SSL 模块:
记事本打开 Apache/conf/httpd.conf 文件:
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl
注意行首前有无#,有则删除 # 并保存。
设置 SSL 协议和加密模块:
记事本打开 Apache/conf/extra/httpd-ssl.conf:
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
注意行首前有无#,有则删除 # 并保存。
修改服务器端口为443:
在 Apache/conf/extra/httpd-ssl.conf文件:
把 ServerName 你的域名后添加:443

SSLCertificateFile 替换成 "cert/自己SSL 证书中以 pulic.crt 结尾文件名"。
注意行首前有无#,有则删除 # 并保存

SSLCertificateKeyFile 替换成"cert/自己SSL 证书中以 .key结尾的文件名”。
注意行首前有无#,有则删除 # 并保存。

SSLCertificateChainFile 替换成"cert/自己SSL 证书中以 .chain.crt 结尾文件名"。
注意行首前有无#,有则删除 # 并保存。

保存,重启Apache。
配置检查
使用https://你的域名 登录网站,如果网页地址栏出现小锁标志,表示证书安装成功。

再次Configuration Check,显示已经使用 SSL:

但有新问题, REDCap base URL没有使用https:

.
回到 Control Center:

把 REDCap base URL 替换成 https://你的域名:

再次 Configuration Check,又有新问题,需要在php.ini 设置 session.cookie_secure 为 on:

打开C:\xampp\php\php.ini:

去掉 session.cookie_secure = 前面的“ ;”并修改为:
session.cookie_secure = on

重启Apache,再次 Configuration Check,没有 SSL 异常了,REDCap 又加了一道安全屏障。