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

如何将自签名SSL证书添加到jHipster示例应用程序中?

云文栋
2023-03-14

我已经创建了示例jHipster应用程序。现在,我想添加自签名的SSL证书,并在本地进行测试,以获得对HTTPS的访问。如何做到这一点?

共有1个答案

武友樵
2023-03-14

这些说明适用于JHipster所基于的所有Spring Boot应用程序。我已经在一个新生成的JHipster2.7项目上测试了这一点。

从头开始时需要完成以下步骤:

  1. 生成自签名证书
  2. 将SSL属性添加到您的application.properties或application.yml中,如Spring Boot文档中所述
  3. (可选)将HTTP重定向到https
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
Enter keystore password:  
Re-enter new password:
What is your first and last name?
  [Unknown]:  
What is the name of your organizational unit?
  [Unknown]:  
What is the name of your organization?
  [Unknown]:  
What is the name of your City or Locality?
  [Unknown]:  
What is the name of your State or Province?
  [Unknown]:  
What is the two-letter country code for this unit?
  [Unknown]:  
Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
  [no]:  yes
server:
  ssl:
    key-store: keystore.p12
    key-store-password: mypassword
    keyStoreType: PKCS12
    keyAlias: tomcat

现在,您可以使用mvn clean package用Maven(或者Gradle(如果您为JHipster应用程序选择了)打包应用程序,并使用mvn spring-boot:run运行应用程序。您现在可以在https://localhost:8080上访问您的应用程序

为了简单起见,我没有更改端口,但理想情况下,您也应该在属性文件中更改它,但我忽略了它,因为它们已经在application-dev.ymlapplication-prod.yml中定义,所以您必须在那里更改它,或者删除它并将其放在常规的application.yml

您只能通过application.properties启用一个协议,所以当您像上面这样做时,只有HTTPS可以工作。如果您希望HTTP也能工作,并重定向到HTTPS,您必须添加一个@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;
  }

这个回应基本上是我关于同一主题的博客文章的副本:http://www.drissamri.be/blog/java/enable-https-in-spring-boot/

 类似资料:
  • 问题内容: 我想在Jenkins中的安全性下启用LDAPS,但是我的LDAP服务器具有自签名的CERT。有没有人做过或对此有一些指示?我必须使用keytool吗? 在我的Dockerfile中,我正在尝试以下操作,但这不起作用: 问题答案: 事实证明,我只需要在Dockerfile中添加它,其中ldap.cer是我的自签名证书的证书链。

  • 问题:由于“无法联系服务器”,用户无法登录移动应用程序 调试消息:“类型错误: 网络请求失败” 尝试修复:重新启动服务器,验证数据库正在运行并且没有任何更改,重新启动服务器正在运行的VM,我使用postman检查了api。当我运行一个简单的POST请求时,收到以下消息: 连接到时出错https://app.something.com/api/Accounts/5076/sometest?filte

  • 我是不是漏掉了什么?这是构建自签名证书的正确方法吗?

  • 我最近升级了Inteliij IDEA 2019.2,如果我尝试从IDE中提取Git,我会发现以下错误:无法访问'https://github.xxx.com/app-Hello-USD/DGS.git/“:SSL证书问题:证书链中的自签名证书。 有人能帮我什么选项,我必须启用。 谢谢

  • 问题内容: 当尝试使用其PHP库通过Twilio发送消息时,我正在为这个错误而苦苦挣扎: 我在Windows 7上使用了wamp。 我当然找到了所有其他有关证书错误的信息。据我所知,通常更新或添加文件即可解决该问题。但是,即使这样做,我仍然遇到相同的错误。 就像这里所做的健全性检查一样,这正是我所做的: 从此处下载了最新的证书:http : //curl.haxx.se/ca/cacert.pem

  • 我想生成一个自签名SSL证书,并将其与Tomcat一起使用。 我怎么能这样呢?

  • 如果URL使用自签名证书,则在以下情况下失败 我知道我可以将传递给参数,如下所示: 但是,我想做的是将请求指向磁盘上的公钥副本,并告诉它信任该证书。

  • 我们不允许对堆栈溢出提出有关专业服务器或网络相关基础设施管理的问题。您可以编辑问题,使其位于堆栈溢出主题上。 我正在向嵌入式Linux设备添加HTTPS支持。我已尝试使用以下步骤生成自签名证书: 这工作,但我得到一些错误,例如,谷歌Chrome: 这可能不是你要找的网站 站点的安全证书不受信任! 我错过什么了吗?这是构建自签名证书的正确方法吗?