Рейтинг:0

Let's Encrypt: SSL-сертификат действителен для домена, но недействителен для конкретного порта (net::ERR_SSL_PROTOCOL_ERROR)

флаг in

Я использую VPS: Amazon EC2 и поставщик сертификатов SSL: Let's Encrypt (через Certbot)

Я видел какой-то вопрос, но ответ бесполезен для моей ситуации. у меня есть домен api.example.com который настроен и полностью функционирует на сервере Ubuntu. Я использовал Certbot для настройки домена с помощью HTTPS, однако у меня также есть API, настроенные для доступа к определенному порту этого домена, скажем, 8443.

Когда я захожу на api.example.com, я вижу блокировку в браузере, которая говорит, что сайт защищен, но всякий раз, когда я пытаюсь получить доступ к своему API api.example.com:8443/v1/someAPI, API возвращает соответствующий результат, но без него сайт безопасен. Поскольку основной сайт защищен, а место доступа к API — нет, я не могу выполнять соответствующие вызовы API, что приводит к сеть::ERR_SSL_PROTOCOL_ERROR.

мой приложение.свойства:

# База данных
db.driver: com.mysql.cj.jdbc.Driver
db.url: jdbc:mysql://123.123.123.123:123/ex?serverTimeZone=UTC&useSSL=false
db.имя пользователя: хх
#db.пароль: ххх
db.пароль: xxxxxx
 
# Спящий режим
hibernate.dialect: org.hibernate.dialect.MySQL5Dialect
hibernate.show_sql: ложь
hibernate.hbm2ddl.auto: проверить
hibernate.format_sql = ложь
entitymanager.packagesToScan: com.example

# Сжатие сервера GZIP
server.compression.enabled: правда
server.compression.min-размер ответа: 2048
server.compression.mime-типы: application/json,application/xml,text/html,text/xml,text/plain

# Путь файла
путь к файлу: /home/ec2-пользователь/
файл.отчет.путь: /home/ec2-пользователь/
jpa.repositories.enabled=false

multipart.enabled=true
multipart.max-file-size=50MB
multipart.max-request-size=50MB

spring.servlet.multipart.max-file-size=50MB
spring.servlet.multipart.max-request-size=50MB

# базовый путь сервера
базовый.путь: https://api.example.com:8443

# Источники, чтобы разрешить запросы от
происхождение: *

#Ошибка конфигурации страницы
server.error.whitelabel.enabled=false
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration

URL-адрес отчета: https://example.com/report/
электронная почта[email protected]
электронная почта=продажи@[email protected]

# Конфигурация SMTP
spring.mail.enabled = правда
spring.mail.from=sales@[email protected]
##Конфигурация Amazon SES SMTP
spring.mail.host = электронная почта-SMTP 
spring.mail.username=fsdfskfjsldfjf
spring.mail.password=ffdfsfdsfdsfsdfdsf
весна.почта.порт=123

eds.users: [email protected]
eds.host: smtp.gmail.com
ред.порт: 123
eds.fromname==пример

##Подробности SSL
сервер.порт:8443
security.require-ssl = истина

server.ssl.key-store: путь к классам: abc.p12
server.ssl.key-хранилище-пароль: abc
сервер.ssl.keyStoreType:PKCS12
server.ssl.keyПсевдоним: abc

Я также добавил правило для 8443 порт [![введите здесь описание изображения][1]][1]

Я получаю сообщение об ошибке в журнале сервера:

  . ____ _ __ _ _
 /\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \/___)| |_)| | | | | || (_| | ) ) ) )
  ' |____| .__|_| |_|_| |_\__, | // / /
 =========|_|==============|___/=/_/_/_/
 :: Весенняя загрузка :: (v2.4.1)

2021-08-28 15:47:04.463 ИНФОРМАЦИЯ 4513 --- [ main ] c.a.MarketResearcher.ApplicationWar : Запуск ApplicationWar v0.0.1-SNAPSHOT с использованием Java 1.8.0_302 на ip-172-31-17-203.ap-south- 1.compute.internal с PID 4513 (/home/ec2-user/MarketResearcher-0.0.1-SNAPSHOT.jar, запущенный пользователем root в /home/ec2-user)
2021-08-28 15:47:04.467 INFO 4513 --- [ main ] c.a.MarketResearcher.ApplicationWar : Активны следующие профили: prod
28.08.2021 15:47:06.924 ИНФОРМАЦИЯ 4513 --- [основная] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.ws.config.annotation.DelegatingWsConfiguration' типа [org.springframework.ws.config.annotation.DelegatingWsConfiguration $$EnhancerBySpringCGLIB$$b39d77f] не подходит для обработки всеми процессорами BeanPostProcessors (например: не подходит для автоматического проксирования)
2021-08-28 15:47:07.008 INFO 4513 --- [ main ] .w.s.a.s.AnnotationActionEndpointMapping : Поддержка [WS-Addressing August 2004, WS-Addressing 1.0]
2021-08-28 15:47:07.705 INFO 4513 --- [ main ] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat инициализирован с портом(ами): 8443 (https)
2021-08-28 15:47:07.729 INFO 4513 --- [ main ] o.apache.catalina.core.StandardService : Запуск службы [Tomcat]
28.08.2021 15:47:07.730 ИНФОРМАЦИЯ 4513 --- [основная] org.apache.catalina.core.StandardEngine: запуск механизма сервлетов: [Apache Tomcat/9.0.41]
2021-08-28 15:47:07.852 INFO 4513 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Инициализация Spring встроенного WebApplicationContext
2021-08-28 15:47:07.852 INFO 4513 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: инициализация завершена за 3164 мс
28.08.2021 15:47:08.432 ИНФОРМАЦИЯ 4513 --- [основная] org.hibernate.Version: HHH000412: основная версия Hibernate ORM 5.4.25.Final
2021-08-28 15:47:08.894 INFO 4513 --- [ main ] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
2021-08-28 15:47:09.462 INFO 4513 --- [ main ] org.hibernate.dialect.Dialect : HHH000400: Использование диалекта: org.hibernate.dialect.MySQL5Dialect
2021-08-28 15:47:09.613 INFO 4513 --- [ main ] o.h.e.boot.internal.EnversServiceImpl : включена ли интеграция Envers? : истинный
2021-08-28 15:47:12.758 INFO 4513 --- [ main ] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000490: использование реализации JtaPlatform: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2021-08-28 15:47:13.322 ИНФОРМАЦИЯ 4513 --- [главная] o.s.s.concurrent.ThreadPoolTaskExecutor: Инициализация ExecutorService 'applicationTaskExecutor'
2021-08-28 15:47:15.192 INFO 4513 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat запущен на порту (ах): 8443 (https) с контекстным путем ''
2021-08-28 15:47:15.223 INFO 4513 --- [ main ] c.a.MarketResearcher.ApplicationWar : ApplicationWar запущен через 11,771 секунды (JVM работает 12,677)
2021-08-28 15:52:41.387 INFO 4513 --- [nio-8443-exec-6] o.a.c.c.C.[Tomcat].[localhost].[/] : Инициализация Spring DispatcherServlet 'dispatcherServlet'
2021-08-28 15:52:41.388 INFO 4513 --- [nio-8443-exec-6] o.s.web.servlet.DispatcherServlet: инициализация сервлета «dispatcherServlet»
2021-08-28 15:52:41.390 INFO 4513 --- [nio-8443-exec-6] o.s.web.servlet.DispatcherServlet: инициализация завершена за 2 мс
2021-08-28 16:06:33.275 ПРЕДУПРЕЖДЕНИЕ 4513 --- [nio-8443-exec-4] org.hibernate.orm.deprecation : HHH90000022: устаревший API Hibernate org.hibernate.Criteria устарел; вместо этого используйте JPA javax.persistence.criteria.CriteriaQuery
2021-08-28 16:06:33.391 ПРЕДУПРЕЖДЕНИЕ 4513 --- [nio-8443-exec-4] org.hibernate.orm.deprecation : HHH90000022: устаревший API Hibernate org.hibernate.Criteria устарел; вместо этого используйте JPA javax.persistence.criteria.CriteriaQuery
2021-08-28 16:06:33.683 ПРЕДУПРЕЖДЕНИЕ 4513 --- [nio-8443-exec-4] org.hibernate.orm.deprecation : HHH90000022: устаревший API Hibernate org.hibernate.Criteria устарел; вместо этого используйте JPA javax.persistence.criteria.CriteriaQuery
2021-08-28 16:06:33.738 ПРЕДУПРЕЖДЕНИЕ 4513 --- [nio-8443-exec-1] org.hibernate.orm.deprecation : HHH90000022: устаревший API Hibernate org.hibernate.Criteria устарел; вместо этого используйте JPA javax.persistence.criteria.CriteriaQuery
2021-08-28 16:06:33.739 ПРЕДУПРЕЖДЕНИЕ 4513 --- [nio-8443-exec-3] org.hibernate.orm.deprecation : HHH90000022: устаревший API Hibernate org.hibernate.Criteria устарел; вместо этого используйте JPA javax.persistence.criteria.CriteriaQuery
2021-08-28 16:06:33.747 ПРЕДУПРЕЖДЕНИЕ 4513 --- [io-8443-exec-10] org.hibernate.orm.deprecation : HHH90000022: устаревший API Hibernate org.hibernate.Criteria устарел; вместо этого используйте JPA javax.persistence.criteria.CriteriaQuery
2021-08-28 16:06:33.845 ПРЕДУПРЕЖДЕНИЕ 4513 --- [nio-8443-exec-5] org.hibernate.orm.deprecation : HHH90000022: устаревший API Hibernate org.hibernate.Criteria устарел; вместо этого используйте JPA javax.persistence.criteria.CriteriaQuery
2021-08-28 16:06:33.866 ПРЕДУПРЕЖДЕНИЕ 4513 --- [nio-8443-exec-2] org.hibernate.orm.deprecation : HHH90000022: устаревший API Hibernate org.hibernate.Criteria устарел; вместо этого используйте JPA javax.persistence.criteria.CriteriaQuery
2021-08-28 16:06:34.021 ПРЕДУПРЕЖДЕНИЕ 4513 --- [nio-8443-exec-7] org.hibernate.orm.deprecation : HHH90000022: устаревший API Hibernate org.hibernate.Criteria устарел; вместо этого используйте JPA javax.persistence.criteria.CriteriaQuery
2021-08-29 19:08:38.141 INFO 4513 --- [nio-8443-exec-5] o.apache.coyote.http11.Http11Processor : ошибка при синтаксическом анализе заголовка HTTP-запроса
 Примечание. Дальнейшие случаи ошибок синтаксического анализа HTTP-запросов будут регистрироваться на уровне DEBUG.

java.lang.IllegalArgumentException: в протоколе HTTP обнаружен недопустимый символ [RTSP/1.00x0d0x0a0x0d...]
    на org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:559) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]
    на org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:261) ~[tomcat-embed-core-9.0.41.jar!/:9.0.41]
    в org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.41.jar!/:9.0.41]
    в org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) [tomcat-embed-core-9.0.41.jar!/:9.0.41]
    в org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) [tomcat-embed-core-9.0.41.jar!/:9.0.41]
    на org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.41.jar!/:9.0.41]
    в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_302]
    в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_302]
    в org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.41.jar!/:9.0.41]
    на java.lang.Thread.run(Thread.java:748) [na:1.8.0_302]
Steffen Ullrich avatar
флаг se
Сертификат не привязан к порту. Рабочий сервер на стандартном порту HTTPS 443 и нерабочий сервер на порту 8443 — это разные серверы с разной конфигурацией. Проблема кроется в настройке сервера на порт 8443.К сожалению, показанная конфигурация не предоставляет достаточной информации об этом сервере, особенно об обслуживаемых сертификатах. Также неясно, как на самом деле осуществляется доступ к серверу — `api.example.com:8443/v1/someAPI` — это неполный URL-адрес, в котором отсутствует протокол (`http://` вместо `https://`)
Ragesh Pikalmunde avatar
флаг in
@SteffenUllrich `https://api.marketsresearcher.biz:8443/v1/read-news` это мой API, который я использую. если вы попытаетесь получить доступ к `https://api.marketsresearcher.biz`, браузер покажет действительный сертификат, но когда я попытаюсь получить доступ к API, он выдаст мне `net::ERR_SSL_PROTOCOL_ERROR`
Steffen Ullrich avatar
флаг se
Я получаю сообщение об отказе в соединении при попытке доступа к API через порт 8443. Это означает, что, вероятно, правила брандмауэра запрещают доступ к этому порту извне. Обратите внимание, что распространенный способ предоставления доступа к API — это не предоставление доступа к самому серверу API через другой порт, а вместо этого обратное проксирование пути API к внутреннему серверу API с использованием обычного веб-сервера.
Ragesh Pikalmunde avatar
флаг in
@SteffenUllrich Я добавил изображение к вопросу, я добавил правило в группу безопасности AWS для порта 8443. Мне нужно сделать что-то еще?
Ragesh Pikalmunde avatar
флаг in
@SteffenUllrich Я получил журнал с сервера, и он выдает ошибку: `java.lang.IllegalArgumentException: в протоколе HTTP найден недопустимый символ [RTSP/1.00x0d0x0a0x0d...]` любая идея, как исправить это на сервере?
Steffen Ullrich avatar
флаг se
Оба ваших последних комментария выглядят совершенно иначе, чем то, о чем вы изначально спрашивали. Пожалуйста, не превращайте свой вопрос в движущуюся цель, а создавайте новые вопросы с достаточной детализацией для новых проблем.
Ragesh Pikalmunde avatar
флаг in
@SteffenUllrich Я обновил вопрос
Steffen Ullrich avatar
флаг se
На основе вывода к API не делается HTTP-запрос, а выполняется запрос RTSP, то есть что-то, что используется в потоковой передаче в реальном времени. Не знаю, что вы делаете на стороне клиента, чтобы вызвать это.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.