首先说下http和https的区别:
1、https协议需要ca证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,http是80端口,而https是443端口。
4、http的连接很简单,是无状态的;而https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
开始操练起来:
1、申请https证书:
https证书有收费的也有免费的,如果是企业使用,建议到正规厂商申请https证书,毕竟正规的证书更加安全稳定并有更好的服务保障,而针对个人开发,免费的https证书可以满足使用。目前很多云服务厂商都支持申请免费的https证书,在这里我们使用腾讯云的证书。
进入到腾讯云的证书选购页面(https://cloud.tencent.com/product/ssl/ssl-types):
点击【立即选购】,进入到选购页面:
选择【域名型免费版(DV)】,然后点击【快速免费申请】,进入到证书申请页面:
在【通用名称】输入完整的想要申请https域名的地址,如:api.**.**.com,点击【下一步】进入域名身份验证页面:
保留默认选择【手动DNS验证】,点击【确认申请】:
此时说明域名证书申请成功,点击【查看证书详情】,进入详情页面:
此时,我们距离证书申请成功还差最后一步,就是进行域名的解析,在域名解析中添加一条记录:
域名解析中的信息要根据证书申请中的信息来填写,点击【确定】,此时回到腾讯云证书申请页面,进行域名解析结果的诊断:
此时说明域名解析正确,此时我们稍等几分钟,证书就会申请下来:
2、站点部署
我们把证书下载下来,解压后发现证书针对各种环境的部署方式都有支持:
在云服务器中,我们对外开放的web访问端口默认有80和443,其中80端口针对http协议,而443端口针对https协议。一般一台服务器上会同时部署多个站点,那就涉及到共用一个端口的问题,这时候我们就会用到Nginx,让80或者443端口指定Nginx,由Nginx反向代理到具体端口的服务上,具体安装Nginx可参考【云服务器Linux安装Nginx】。
安装完Nginx后,我们需要编辑Nginx的配置,使得Nginx支持https访问并能反向代理,编辑nginx的编辑文件:
vi /usr/local/nginx/conf/nginx.conf
添加一个server配置:
server { listen 443 ssl; server_name api.**.**.com; # 申请证书的完整域名 ssl_certificate ****.crt; # crt 文件绝对路径 ssl_certificate_key ****.key; # key文件绝对路径 ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置 ssl_prefer_server_ciphers on; location /api/ { proxy_pass http://localhost:8899; # 接口本地端口 } }
修改完nginx配置,需要重启下才可以生效:
/usr/local/nginx/sbin/nginx -s reload
操作完如上这些步骤,我们的接口站点就可以使用https访问了:
如果走到这步,那么恭喜你,你已经拥有一个https的站点了!这样你就可以开发微信小程序等等无压力了。
感谢您的阅读,如有任何问题,可以关注我并私信。
原创文章,作者:共创,如若转载,请注明出处:https://www.sudun.com/ask/96085.html