最近一个项目需要用到https服务,因为涉及直播及浏览器调取用户的摄像头及麦克风等设备。
网上找了很多的例子,配置nginx(前端服务)及SpringBoot的后端java项目的https实现,发现效果并不理想,遇到的问题如下:前端页面打开的时候需要做下证书的授权,链接不受信任;后端接口同样是需要做一下证书的授权,不然请求后端服务时会报错。
需求解决办法就是,如何能做一次授权就能前后端同时访问。最终使用腾讯云的SSL证书服务解决了,目前腾讯云的SSL服务是一年的免费期。
具体流程:
1.登录腾讯云申请
地址:https://console.cloud.tencent.com/ssl
注册,申请
通用名称写域名即可,之后https使用在该域名下
私钥密码,自己设置一个密码
下一步进入审核状态,需要做下认证
认证参考:https://cloud.tencent.com/document/product/400/4142
一般10分钟左右就ok了
通过后会有下载选项,下载即可。
2.配置nginx
nginx需要的是nginx目录中的那两个文件:xxx.crt ,xxx.key
nginx配置:
————————————————————
server {
listen 8080;
server_name localhost xxx.com www.xxx.com;
ssl_certificate /usr/local/service/ca/xxx.crt;
ssl_certificate_key /usr/local/service/ca/xxx.key;
ssl on;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/local/service/xxx;
index index.html index.htm;
}
}
————————————————————————
3.SpringBoot配置
配置application.properties即可
————————————————————————
server.ssl.key-store=/usr/local/service/ca/XXX.jks
server.ssl.key-store-password=zxzxzxz
server.ssl.keyStoreType=JKS
————————————————————————
Done!