公司需要构建一个https访问的公网域名,记录申请过程以供拾遗。
首先选择一家SSL证书托管网站,我司使用的是godaddy,使用过程中发现godaddy的网站并不友好,但客服相对专业,且具备中文客服,这里不做推荐,自主购买。
1、购买域名。我们也一并在godaddy上购买了;
2、购买SSL证书服务,我司购买的是标准版的SSL证书;
3、在服务器上创建证书申请文件csr和申请私钥key。csr用于申请证书,key用于放置于nginx的私钥区域。
openssl req -new -newkey rsa:2048 -nodes -keyout mywebsite.key -out mywebsite.csr
4、将csr的内容复制到网站的key更新区域,保存后提交。
5、在网站上下载对应的证书文件。类型安装服务器类型选择即可,这里选择Apache。
6、将证书通过需要的方式部署到服务器上。
我选择的方式是用nginx转发,参考网站的提示,将下载下来的两个证书文件使用cat命令合并为一个。
cat abc.crt gd_bundle-g2-g1.crt >> mywebsite.crt
7、更改nginx配置。关键配置如下。注意ssl协议需要TLSv1.2以上,否则网站会报不安全的问题。
server {
listen 443 default ssl;
server_name localhost;
ssl on;
ssl_certificate enjoy.crt;
ssl_certificate_key enjoy.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://mywebsite;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#error_page 404 /404.html;
}
8、设置域名的dns解析,指向配置好nginx的ECS上。
在godaddy上调整域名dns的a域即可。
9、尝试通过https访问域名,发现已经提示安全了。
10、可通过chrome浏览器的开发者模式控制台,查看安全性能。所有项目均提示绿色,即ssl安全验证通过。