最近公司的产品启用了https,跟着看了一遍。然后自己试着配置,记录一下步骤,备忘。

一.申请免费证书

    这里推荐使用 FreeSSL.org - 提供 Let’s Encrypt 与 TrustAsia CA 的免费 HTTPS 证书。目前所在公司就是在这里申请的。

    首先输入域名:比如我这里是 - api.rumoss.cn,然后点击「创建免费的SSL证书」。

    然后输入邮箱,用来接收证书到期等通知。

    最后一步最重要,证书类型选择的是「ECC」,验证类型选择的是「DNS」,CSR生成选择的是「浏览器生成」。然后「点击创建」,会出现一段步骤提示:会提供一个「TXT 记录」和「记录值」,接着需要登录到对应域名提供商的域名解析控制台里面,新增一条TXT记录(某个主机名或域名设置的说明,用途是便于别人联系)。

    配置好了后,回到刚才的页面,「点击验证」。一般会等待几分钟,如果长时间没反应,重新点击。验证成功后,浏览器会自动下载你的证书,里面包含两个文件:

  • private.key
  • full_chain.pem

    上传这两个文件至服务器,开始配置服务器。


二.服务器配置

    大部分的网站服务都由Web服务器来完成,比如Nginx/Apache。我这里以apache httpd为例测试。

0.端口检查

    登录服务器,检查服务器端口80443是否已经开启。

1.安装httpd和ssl

    服务器是CentOS系统,安装很简单:

yum install httpd #安装apache httpd
systemctl enable httpd #设置开机启动
systemctl start httpd #启动httpd服务

    安装完成后,可以通过在浏览器输入你的域名访问服务器。我这里是 http://api.rumoss.cn ,Chrome会提示不安全。如果能看到httpd的测试页面Testing 123..,说明Web服务已经启动好了。

    接着安装ssl模块,安装好了后,会在目录/etc/httpd/conf.d下多出一个配置文件ssl.conf,这里我们要配置之前下载到的证书。

yum install mod_ssl #安装ssl模块
2.配置SSL证书

    在服务器上创建目录/etc/httpd/ssl,把之前下载好的证书文件移动到目录下。

    修改文件/etc/httpd/conf.d/ssl.conf,只需修改两行,内容如下:

SSLCertificateFile /etc/httpd/ssl/full_chain.pem
SSLCertificateKeyFile /etc/httpd/ssl/private.key

    最后重启httpd服务:

systemctl restart httpd

    在浏览器访问带https的域名,我这里是 https://api.rumoss.cn ,就会发现,刚才提示的不安全,现在没了,可以在chrome里面看到证书的信息。

    至此,https配置完成,很简单。