0. 实践目的:
有一台ECS服务器运行一个比较重要的网站,为了保证中间的数据传输安全需要对其加密,在阿里云平台中使用SSL证书服务来完成这个需求。
1. SSL证书服务购买:
实验用途,选择免费版本,如果是线上对安全性要求比较高的建议选择专业版、高级版、增强型的SSL证书
2. SSL证书申请:
填写域名信息,所在地信息,域名验证方式因为云解析服务已经有yekangming.com域名,所以可以选择自动DNS验证,如果是手工DNS验证,需要手动配置配置DNS验证,填写申请人信息,CSR选择系统自动生成。
CSR知识补充:1、使用 系统生成CSR 方式,系统将自动帮您生成证书私钥,并且在证书申请成功后可直接在证书管理列表中下载您的证书和私钥。
您也可以自己生成 CSR(Certificate Signing Request)证书请求文件,并上传CSR,在证书申请成功后可直接在证书管理列表中下载您的证书。
如果是手工验证需要手动添加一条DNS TXT类型的解析记录。
等待证书审批完成,状态会变成已签发
3. SSL证书应用:
3.1 下载SSL证书,需要根据应用服务器类型,因为我的环境是Apache Httpd,所以我选择选下载Apache(按需选择)
3.2 解压下载的证书压缩包,并上传到ECS服务器。
3.3 修改Apache httpd配置,应用SSL证书。配置修改完成后要重启应用。(Apache Httpd请看3.3,如果是Nginx请看3.4)
3.3.1 将访问请求从HTTP跳转HTTPS
编辑站点根目录下的.htaccess进行配置,判断请求的端口是否80,如果是就匹配规则调整到HTTPS。
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]
3.3.2 启用Apache httpd SSL模块及配置
将#号删除表示启用配置
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
3.3.3 配置密钥对和证书链等信息
Listen 443
SSLPassPhraseDialog builtin
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW:!RC4:
<VirtualHost *:443>
DocumentRoot "/data/webroot/mvp"
Servername mvp.yekangming.com
ErrorLog /var/log/httpd/mvp.yekangming.com-ssl-error.log
TransferLog /var/log/httpd/mvp.yekangming.com-ssl-access.log
LogLevel warn
SSLEngine on
SSLCertificateFile /data/certificate/mvp.yekangming.com-public.crt
SSLCertificateKeyFile /data/certificate/mvp.yekangming.com-private.key
SSLCertificateChainFile /data/certificate/chain.crt
</VirtualHost>
3.4 修改Nginx配置,配置修改完成后要重启应用。(Apache Httpd请看3.3,如果是Nginx请看3.4)
3.4.1 编辑nginx配置文件,配置http跳转https,配置443端口监听及绑定证书。
server {
listen 80;
server_name mvp.yekangming.com;
location / {
rewrite ^/(.*)$ https://mvp.yekangming.com/$1 permanent;
}
}
server {
listen 443 ssl;
server_name mvp.yekangming.com;
ssl_certificate /data/certificate/mvp.yekangming.com-public.crt;
ssl_certificate_key /data/certificate/mvp.yekangming.com-private.key;
location / {
root /data/webroot/mvp;
index index.php index.html;
}
}
4. SSL证书的访问测试
主流的火狐和谷歌浏览器完美支持SSL证书,并正常显示和访问。
5. SSL证书服务使用总结:
阿里云SSL证书使用非常简单,很容易入门即可完成申请证书,配置证书,还可以支持一键部署到CDN及SLB云产品中。