Настроить HTTPS на сервере через HTTPS в приложении - PullRequest
0 голосов
/ 09 июля 2020

Я не нашел похожих вопросов. Что означает включение HTTPS на сервере, а не в приложении напрямую, в чем разница между ними и что лучше ?

Например: если у вас есть приложение Spring Boot, работающее на сервере Tomcat , вы можете настроить HTTPS непосредственно в Spring Boot (хранилище ключей, свойства приложения) или на самом сервере Tomcat. В обоих случаях приложение будет обслуживаться по HTTPS?

Нужно ли go в паре, или достаточно одного? Вопрос должен быть таким же и для других комбинаций: Asp. Net и IIS, PHP и WAMP et c.

1 Ответ

0 голосов
/ 09 июля 2020

HTTP-соединениями управляет веб-сервер, например Tomcat . Spring Boot не обрабатывает их напрямую. Разница между настройкой HTTPS в Spring Boot, а не в Tomcat, заключается в том, как ваше приложение упаковано.

Приложение Spring Boot может быть упаковано как артефакт WAR и развернуто на внешнем сервере Tomcat. В этом случае вы должны настроить HTTP / HTTPS непосредственно в Tomcat, обычно в файле конфигурации с именем server.xml. Например:

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

Вы также можете упаковать приложение Spring Boot как автономный артефакт JAR, для которого встроен веб-сервер , это часть самого приложения, поэтому вы можете запускать как стандартное приложение Java, например java -jar myapp.jar. В этом случае любая конфигурация Tomcat будет происходить через Spring Boot либо из файла свойств (application.properties или application.yml), либо через bean-компонент WebServerFactoryCustomizer. Например:

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

В обоих сценариях ios конфигурация HTTP предназначена для Tomcat, поскольку этот компонент «говорит» по протоколу HTTP и отвечает клиентам. Spring Boot предоставляет красивый и удобный интерфейс для настройки сервера. То же самое и с HTTPS. Выбор между ними зависит от вашей архитектуры. Если вы используете Spring Boot со встроенным сервером, вам следует добавить конфигурацию HTTPS через свойства Spring или beans. Если вам интересно, как это сделать, я написал об этом статью .

В упомянутых парах всегда есть общие элементы:

  • веб-сервер, управляющий HTTP-соединениями
  • приложение, взаимодействующее с веб-сервером для получения HTTP-запросов и ответа с помощью HTTP-ответов.

Взаимодействие между ними зависит от языков, фреймворки и серверы. В случае Tomcat сервер состоит из двух основных компонентов: один отвечает за управление HTTP (в Tomcat называется Coyote), а второй обеспечивает контекст выполнения для приложения Java для запуска и взаимодействия с сервером (в Tomcat называется Catalina. ). Взаимодействие между приложением Java и Tomcat происходит в соответствии с API сервлета Java.

...