前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为了调个https接口,先后跟几万亿市值的大厂合作了一把

为了调个https接口,先后跟几万亿市值的大厂合作了一把

作者头像
CainGao
发布2020-04-14 14:59:16
3870
发布2020-04-14 14:59:16
举报
文章被收录于专栏:指尖数虫

已经开始工作了,确实今年的压力比去年大了一些。可能是心态问题吧,虽然在家办公但是依然感觉很压抑。 状态就是: "感觉很忙,但是又没有目标"。不知道有没有人有过这种感觉。所以呢就翻看了一下之前写的 一只程序员的2019 。看完后终于知道做点什么了?

梦断https

2020年一个小目标,开发一款智能音箱应用。应用的使用场景早就想好了,只是上一年没有调通接口。今年换了个平台继续研究。 研究了一下文档,按照流程配置发现:

  • 必须是https
  • 必须是443端口
  • 其他从这里来看,我需要提供https。于是自己生成了一个证书。经过测试依然无法收到请求。后来怀疑是证书的问题。

毕竟使用某些库直接访问https不可信证书的情况下还需要做忽略实现。所以还是使用可信证书吧。不能让我2020年计划直接挂在这个https上

申请SSL证书

首先申请一个SSL证书,发现马总那里有免费的SSL证书可以用。那么就在马总这里申请一个吧。进入腾讯云SSL证书进行购买选择域名型免费版

购买后进入填写页面。绑定SSL证书与域名进行绑定。按照必填项进行填写。其他可以不填。

填写好以后点击下一步进入,选择使用手动dns的方式提交。然后查看证书详情。

现在就是需要我们去域名提供商那里增加一个解析。 现在就需要跟另一位马总合作一下了。进入阿里云域名解析增加一个dns配置。

回到腾讯云状态变更为 已颁发 即可进行下载。

下载获得一个压缩文件,压缩文件里有 Apache,IIS,Tomcat等域名与密码。

SpringBoot配置使用https

由于项目本身使用SpringBoot来做的,直接在SpringBoot上使用https吧。

  1. 导入证书 首先把证书扔到resrouce目录下,修改application.properties或application.yaml。增加
代码语言:javascript
复制
server.port=443
server.ssl.key-store=classpath:www.aaaa.com.jks
server.ssl.enabled=true
server.ssl.key-store-password=1231 ###解压包里面有密码
server.ssl.key-store-type=JKS
spring.devtools.restart.enabled=true
  1. 修改启动器,让SpringBoot的http请求自动转化为https请求
代码语言:javascript
复制
import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SSLConfig {
    
    // 如果没有使用默认值80
    @Value("${http.port}")
    Integer httpPort;

    // 正常启用的https端口 如443
    @Value("${server.port}")
    Integer httpsPort;
    
    @Bean
    public TomcatServletWebServerFactory servletContainer() { //springboot2 新变化

        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {

            @Override
            protected void postProcessContext(Context context) {

                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
        return tomcat;
    }

    private Connector initiateHttpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(httpPort);
        connector.setSecure(false);
        connector.setRedirectPort(httpsPort);
        return connector;
    }

}
  1. 配置解析与服务器测试 项目与证书都已经修改完成,那么需要对域名进行解析了。获取到服务器的公网ip,确保所访问的443,80端口安全组与防火墙都已开放该端口。解析申请领书的域名到该ip地址。 启动项目。访问该域名地址
最终

再次进入智能音箱开发控制后台,输入调用地址。测试...正常!!!

这是一个好的开始!!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 指尖数虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 梦断https
  • 申请SSL证书
  • SpringBoot配置使用https
  • 最终
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档