通过应用程序中的HTTPS在服务器上配置HTTPS



我找不到任何类似的问题。什么意味着在服务器上启用HTTPS,而不是直接在应用程序中启用HTTPS,两者之间有什么区别,什么更好

例如:如果您有一个运行在Tomcat服务器上的Spring Boot应用程序,您可以直接在Spring Boot(密钥库、应用程序属性(中或Tomcat服务器本身配置HTTPS。在这两种情况下,应用程序都将通过HTTPS提供服务?

它们需要成双吗?还是只需要一个就足够了?其他组合的问题也应该相同:Asp.Net和IIS,PHP和WAMP等。

HTTP连接由Tomcat这样的web服务器管理。Spring Boot无法直接处理它们。在Spring Boot中配置HTTPS与在Tomcat中配置HTTPS的区别在于应用程序的打包方式。

Spring Boot应用程序可以打包为WAR工件,并部署在外部Tomcat服务器上。在这种情况下,您将直接在Tomcat中配置HTTP/HTTPS,通常在名为server.xml的配置文件中。例如:

<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="2000"
minSpareThreads="10"
maxThreads="100"/>

您还可以将Spring Boot应用程序打包为一个独立的JAR工件,其中嵌入了web服务器,它是应用程序本身的一部分,因此您可以像java -jar myapp.jar一样作为标准Java应用程序运行。在这种情况下,任何Tomcat配置都将通过Spring Boot进行,可以从属性文件(application.propertiesapplication.yml(进行,也可以通过WebServerFactoryCustomizerbean进行。例如:

server:
port: 9001
tomcat:
connection-timeout: 2000
threads:
max: 100
min-spare: 10

在这两种场景中,HTTP配置都是针对Tomcat的,因为Tomcat是组件";说";HTTP协议和对客户端的响应。Spring Boot提供了一个漂亮而方便的界面来配置服务器。HTTPS也是如此。两者之间的选择取决于您的体系结构。如果您将Spring Boot与嵌入式服务器一起使用,那么您将通过Spring属性或bean添加HTTPS配置。如果你对如何做到这一点感兴趣,我写了一篇关于它的文章

在你提到的配对中,总是有一些共同的元素:

  • 管理HTTP连接的web服务器
  • 与web服务器交互以获得HTTP请求并用HTTP响应进行回复的应用程序

两者之间的交互因语言、框架和服务器而异。在Tomcat的情况下,服务器有两个主要组件:一个负责管理HTTP(在Tomcat中称为Coyote(,另一个为Java应用程序运行和与服务器交互提供执行上下文(在Tomcat中将称为Catalina(。Java应用程序和Tomcat之间的交互是根据Java Servlet API进行的。

最新更新