最近公司的产品启用了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.端口检查
登录服务器,检查服务器端口80
和443
是否已经开启。
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配置完成,很简单。