beego RESTful API工程下使用https访问api接口

1、开启https,关闭http:

在app.conf中设置即可,相关设置项如下:

EnableHTTP=false
httpport = 8080
EnableHTTPS=true
EnableHttpTLS = true
HttpsPort = 443
HTTPSCertFile = "server.crt"
HTTPSKeyFile = "server.key" 

https端口可以更改,HTTPSCertFile和HTTPSKeyFile为ssl证书相关配置。

2、如何获取SSL证书?

提供两种方法:

(1)使用Openssl制作。

(2)申请或购买SSL证书。BAT等大厂都有免费1年的证书可以申请,我自己是在百度云上申请的SSL证书。
 

3、Openssl制作SSL证书

windows和linux上均可以操作。制作证书前,确保系统有安装Openssl。centos上安装openssl较简单,所以我是直接在centos上制作的证书,拿到windows上也可以直接使用。

(1)生成私钥:openssl genrsa -des3 -out server.pass.key 2048

(2)生成CSR(证书签名请求):openssl req -new -key server.key -out server.csr -config openssl.cfg

根据提示输入相关信息,Common Name可以填localhost

(3)删除私钥中的密码:openssl rsa -in server.key -out server.key

(4)生成自签名证书:openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

证书制作完成,只需将server.key和server.crt拷贝至工程文件下(与可执行文件同级目录)即可。启动beego,即可使用https访问接口。

4、百度云SSL证书

百度云申请SSL证书,需要先注册域名,并通过备案(时间有点久)。具体申请流程可参考百度云官网。这里讲一下证书申请下来后,怎么在beego项目中使用的问题。

从百度云申请免费SSL证书后,下载解压(0908)后有三个文件:
*.cer 、*.key 、*.crt 

(1)私钥(*.key)可以直接使用,为方面起见,重命名.key文件为: server.key

(2)开始不太明白.cer文件的用处,直接忽略了,将*.crt文件重命名为server.crt后,
直接将server.key和server.crt拷贝至beego工程项目下(与可执行文件输出文件同目录),
提示出错: ListenAndServeTLS:  tls: private key does not match public key

(3)查看了百度云官方描述SSL证书部署,添加证书时,将解压后的.cer文件和.crt文件合并后,重命名为server.crt后,
拷贝至工程目录下,运行正常。

PS:合并顺序不能错,.cer文件在前,回车后,拷贝.crt文件合并。(不要留空行)

使用百度云SSL证书后,在浏览器访问api接口时,出现:

显示的是https安全。

而使用Openssl生成的证书,用浏览器访问,显示:

需要说明的是:百度云生成的SSL证书使用域名申请的,尝试过将百度生成的SSL证书拷贝至windows内网环境下使用,还是会提示https不安全。

查看了一下百度云的部署证书说明:

总结:局域网及测试环境下使用https,可以直接使用Openssl生成SSL证书。如在实际生产环境部署,出于安全考虑,还是购买SSL证书为好。

最后提一句,在postman上使用https测试api接口时,需要在postman上配置ssl相关证书。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值