以下会记录在 RHEL 及 CentOS 7 安装及设定 Apache mod_ssl 的的方法, 以下假设已经使用 YUM 安装好 Apache, 并会示范安装自签凭证及 CA 发行感证的步骤。
首先用 YUM 安装 mod_ssl:
安装好 mod_ssl 后, 系统会自动建立 Apache 的 ssl 设定档, 位置在 /etc/httpd/conf.d/ssl.conf, 但在修改 ssl.conf 前, 先建立好储存凭证的目录, 及产生凭证:
建立储存凭证的目录, 以下设定在 /etc/httpd/ssl
然后用 openssl 建立 priviate key 及 凭证:
# openssl req -nodes -newkey rsa:2048 -keyout myserver.key -out server.csr
输入上面指令后, 会要求输入国家, 城市, 机构名称及 hostname 等资讯, 然后用 openssl 建立 ca.crt 档案:
现在可以编辑 ssl.conf:
找到 “DocumentRoot”, 将前面的 “#” 注解删除, 并设定成网页的目录, 默认是 /var/www/html; 然后将 ServerName 的注解删除, 并改成 Domain Name, 改成类似这样:
ServerName www.yourdomain.com
上面的设定跟 http 的设定差不多, 现在是设定 SSL 的部份, 找到以下两行:
SSLCertificateFile
SSLCertificateKeyFile
将以上两个参数前的注解删除, 并指定到上面建立的 private key 及自签凭证:
SSLCertificateFile /etc/httpd/ssl/ca.crt
SSLCertificateKeyFile /etc/httpd/ssl/myserver.key
因为使用 SSLv3 或以下有安全问题, 需要关闭 SSLv3, 找到以下一行:
改为:
储存盘案后离开, 并重新启动 Apache:
要测试是否成功安装, 可以打开浏览器, 开启服务器的 https:// 页面, 例如:
https://www.yourdomain.com/
由于上面只是使用自签凭证, 浏览器不能验证凭证, 所以浏览器会发出警告凭证不可信, 只要选择继续浏览, 便可以看到加密了的网页。
如果不想出现上面的凭证不可信警告, 可以向在网络向各大 CA 购买 SSL 凭证, 然后将凭证储存到服务器, 并修改 ssl.conf 便可以了。
如果要将所有 http:// 的页面转到 https:// 的话, 可以开启 httpd.conf, 在 http:// 的 VirtualHost 段落内, 加入以下一行:
Redirect permanent / https://www.yourdomain.com
储存后重新新动 Apache, 这样便会将所有 http:// 的请求转到 https://www.yourdomain.com