前言
之前给朋友分享自己网站的链接,看着链接旁的小问号,总是给人一种草台班子的感觉(虽然确实如此)
…有过换成https的想法(也就是安装SSL证书)但不知道为什么阿里云给了我一种CA证书需要付费才能拥有的错觉,所以迟迟没有行动
后来偶然间发现别人的个人网站可以用https协议,深入了解了一下,才发现这完全可以是免费的
因为免费证书需要定期更换,而使用的过程又有许多小细节,随手记录一下安装的流程以便以后参考
注册证书
在FreeSSL就可以免费注册SSL证书,只要在输入栏输入需要SSL证书的域名就可以了
此处参考链接:阿里云服务器配置免费https服务
我使用的是Let’s Encrypt,因为它可以同时给二级域名发证书(在输入域名时使用通配符即可),但是每次证书签发的期限只有三个月,所以需要定期更换。
填入自己的邮箱,选择“浏览器生成”
然后需要给域名添加对应的TXT解析
我的域名服务商是阿里,这里就以阿里云为例。进入域名解析,点击“添加记录”。
把FreeSSL提供的主机记录/解析值填入对应的位置进行解析
解析成功后,回到FreeSSL进行确认,确认后会得到证书(pem格式)和key
上传证书
SSL证书到手之后需要手动上传到域名服务商处
转换证书格式
回到服务器,在服务器上安装SSL模块
yum install -y mod_ssl
把证书和密钥传到服务器上。为了在Apache上安装证书,需要把pem格式的证书转成crt,在终端使用如下命令:
openssl x509 -outform der -in your-cert.pem -out your-cert.crt
在服务器上安装证书
修改网站的ssl配置文件:/etc/httpd/conf.d/ssl.conf,添加下面的内容,记得把对应内容(比如目录之类)修改成自己的
此处参考链接:SSL Certificates with Apache on CentOS 7
<VirtualHost *:443>
SSLEngine On
SSLCertificateFile /etc/pki/tls/certs/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
SSLCACertificateFile /etc/pki/tls/certs/root-certificate.crt #If using a self-signed certificate or a root certificate provided by ca-certificates, omit this line
ServerAdmin info@example.com
ServerName www.example.com
DocumentRoot /var/www/example.com/public_html/
ErrorLog /var/www/example.com/logs/error.log
CustomLog /var/www/example.com/logs/access.log combined
</VirtualHost>
之后重启Apache服务即可
systemctl restart httpd
测试
可以在这里myssl.com测试SSL证书是否安装成功
这下可以愉快的跟朋友分享网站,而不用担心尴尬的小问号了
参考链接汇总:
[1]SSL Certificates with Apache on CentOS 7
[2]Convert .pem to .crt and .key
[3]centOS7 apache ssl证书安装配置
[4]阿里云服务器配置免费https服务