公司需要构建一个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.csr4、将csr的内容复制到网站的key更新区域,保存后提交。
5、在网站上下载对应的证书文件。类型安装服务器类型选择即可,这里选择Apache。
6、将证书通过需要的方式部署到服务器上。
我选择的方式是用nginx转发,参考网站的提示,将下载下来的两个证书文件使用cat命令合并为一个。
cat abc.crt gd_bundle-g2-g1.crt >> mywebsite.crt7、更改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安全验证通过。