当前位置: 首页 > 知识库问答 >
问题:

spring boot SSL已配置,服务器已启动,但无法连接到端口

符畅
2023-03-14

我尝试过使用最新版本的引导应用程序,希望使rest api ssl安全,我已经创建了密钥库并放入项目类路径,服务器开始启动,启动没有问题,但无法发送请求8080或8443,下面是配置,

server.ssl.key-store=keystore.p12 server.ssl.key-store-password=shashank server.ssl.key-alias=mydomain server.ssl.key-password=shashank

@Bean
   public TomcatServletWebServerFactory servletContainer() {
      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(getHttpConnector());
   return tomcat;
   }

  private Connector getHttpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("https");
        connector.setPort(8080);
        connector.setSecure(true);
        connector.setRedirectPort(8443);

}

信息84898---[main]O.s.B.W.Embedded.Tomcat.TomcatWebServer:Tomcat在端口上启动:在此处输入图像描述8443(https)8080(https),上下文路径为“/event-processing”

因为这是自签名的证书,它说“这个证书不是从第三方验证的”

这里意图是使https到所有rest API的输入图像描述在这里

共有1个答案

邹博裕
2023-03-14

试用以下更改:

修改application.properties以将server.ssl.key-store参数值从keystore.p12编辑为keystore.p12

server.ssl.key-store: keystore.p12

将TomcatEmbeddedServletContainerFactory bean添加到@Configuration类(任意一个)。

 @Bean
  public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
        @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(8080);
    connector.setSecure(false);
    connector.setRedirectPort(8443);

    return connector;
  }
 类似资料:
  • 我正在以下链接中使用sysdeo插件进行tomcat安装: http://technologicaloddity.com/using-projects/Java-projects/setting-up-the-sysdeo-tomcat-plug-in/ 由于我需要从我的spring mvc在tomcat中运行solrserver,所以我选择了上面的链接。 我配置了所有的东西,也做了solr wa

  • 问题内容: TL; DR -MSSQL Service声称尚未准备就绪(状态=已启动)(请参见下面的删除文本) 我有C#编写的Windows服务,该服务本身会安装 并 在中指定 。 现在,我已经创建了MS SQL用户,为其授予了所有必需的权限和角色(包括对所需数据库的访问权限和角色,以及“连接/登录”特权)。 手动运行服务时(通过或 services.msc 管理器),它可以正确运行,即连接到数据

  • 当我试图启动SpringBoot主应用程序时,出现以下异常。为什么我会得到这个特例。 异常: Spring boot主java类

  • 我正在关注应用程序中的条目。 我有下面的spring云服务器应用程序代码。 我收到以下错误。 启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2021 02月24日01:39:52.356错误20804---[restartedMain]o.s.b.d.LoggingFailureAnalysisReporter: 应用程序无法启动 描述:

  • 我正在使用Spring Cloud Config Server和一个简单的Spring Boot项目。所以我有一个Spring Cloud Config Service服务和另一个连接到Spring Cloud Config Service以获取数据库凭据和其他属性等一些属性的简单服务。如果我在本地测试它一切正常,但如果我尝试将这2个服务作为docker容器启动,它就不起作用了。Spring Cl

  • 出现此错误信息: 查询错误:org.apache.hadoop.hive.ql.metadata.hiveException:MetaException(消息:Got Exception:java.net.ConnectionException从undefined.hostname.localhost/192.168.xx.xxx调用到localhost:9000在连接异常:java.net.co