Ошибка tlsv1 alert unknown ca

Currently using libmproxy, which in turn uses telnetlib, to make requests to HTTPS Web pages. However, the following error is raised:

Error: [('SSL routines', 'SSL3_READ_BYTES', 'tlsv1 alert unknown ca')]

I believe this is related to the inability to verify the identity of the CA that vouches for the certificate the page uses. I would think there should be a setting that I can turn on (or off) that enables bypass of verification — I’m not interested in verifying the identity of the digital signer.

I think that a possible, kind of ugly, solution could be to patch the code to catch the exception and ignore it, but I would rather have a cleaner and more-supported way to do it.

What is a good way to avoid/solve this problem?

Thanks very much!

asked Jul 2, 2013 at 22:51

Juan Carlos Coto's user avatar

Juan Carlos CotoJuan Carlos Coto

12k22 gold badges63 silver badges102 bronze badges

6

Seems that you can use the certutil if you have Windows clients.

http://support.microsoft.com/kb/555252

For Linux clients you can use:

sudo mkdir /etc/share/certificates/extra && cp cacert.crt /user/share/certficates/extra/cacert.crt
sudo dpkg-reconfigure ca-certificates

For Mac clients:

sudo security add-trusted-cert -d -r trustRoot -k \
"/Library/Keychains/System.keychain" \
"/private/tmp/certs/certname.cer"

(got this answer from https://apple.stackexchange.com/questions/80623/import-certificates-into-system-keychain-via-the-command-line)

Also, reading libmproxy’s webpage it seems that it is able to load up custom certificates. If you already have an internal cert authority that your clients already trust you may want to simply generate certs from there.

Community's user avatar

answered Jul 16, 2014 at 6:01

Phobos's user avatar

PhobosPhobos

7177 silver badges9 bronze badges

This happens when the proxySG certificate that is presented to the user isn’t signed by a trusted CA.

I had this error too, I fixed it by pushing the CA (the one used for ssl proxy) to the actual browser, through group policy.

answered Jan 10, 2014 at 16:58

Tim's user avatar

1

Ошибка «Tlsv1 alert unknown ca» может возникнуть при попытке подключения к сайту или сервису, который использует протокол TLS. Такая ошибка означает, что клиент (в данном случае ваше устройство) не может проверить подлинность сертификата удостоверяющего центра (УЦ) сайта или сервиса.

УЦ – это надежная организация, которая выпускает электронные сертификаты, подтверждающие подлинность сайтов. Если ваше устройство не может проверить сертификат УЦ, оно считает его недействительным и отказывается от установления безопасного соединения.

Для исправления ошибки «Tlsv1 alert unknown ca» можно предпринять несколько шагов. Во-первых, проверьте, что у вас установлены все необходимые обновления операционной системы и браузера. Уязвимости и ошибки могут быть исправлены в последних версиях ПО.

Во-вторых, убедитесь, что установлены корневые сертификаты удостоверяющих центров. Корневые сертификаты являются базовыми сертификатами, которые содержат открытый ключ УЦ. Чтобы установить корневые сертификаты, вы можете воспользоваться официальным сайтом разработчика вашего браузера или операционной системы.

Содержание

  1. Понимание ошибки Tlsv1 alert unknown ca
  2. Шаг 1: Проверка версии TLS
  3. Шаг 2: Проверка сертификата SSL
  4. Шаг 3: Проверка цепочки сертификатов
  5. Шаг 4: Обновление корневых сертификатов
  6. Шаг 5: Обновление клиентского программного обеспечения
  7. Шаг 6: Проверка настройки SSL
  8. Шаг 7: Изменение настроек безопасности

Понимание ошибки Tlsv1 alert unknown ca

Tlsv1 alert unknown ca — это ошибка, которая возникает при попытке установить безопасное соединение (HTTPS) с веб-сервером. Она указывает на проблему с сертификатом безопасности, который используется для проверки подлинности веб-сайта.

Веб-браузеры используют цепочку сертификатов для проверки подлинности веб-сайтов. Цепочка сертификатов начинается с корневого сертификата, который является доверенным источником и выдается учреждениями по сертификации. Далее следуют промежуточные сертификаты, которые связывают корневой сертификат с сертификатом конечного веб-сайта.

Ошибка Tlsv1 alert unknown ca возникает, когда веб-браузер не может распознать цепочку сертификатов, используемую сервером. Это может произойти по нескольким причинам:

  1. Устаревший браузер: Если вы используете устаревший веб-браузер, он может не распознавать некоторые новые корневые сертификаты или методы шифрования.
  2. Неправильная настройка сервера: Если сервер неправильно настроен, он может использовать недействительные или устаревшие сертификаты безопасности.
  3. Проблемы с корневым сертификатом: Если корневой сертификат, используемый сервером, не распознается браузером, возникает ошибка.
  4. Проблемы с промежуточными сертификатами: Если один из промежуточных сертификатов, связывающих корневой сертификат с сертификатом сервера, не распознан браузером, возникает ошибка.

Для решения ошибки Tlsv1 alert unknown ca можно предпринять несколько действий:

  1. Обновите веб-браузер до последней версии. Таким образом, вы получите последние обновления корневых сертификатов и методы шифрования.
  2. Убедитесь, что сервер правильно настроен и использует действующие и правильно подписанные сертификаты безопасности.
  3. Проверьте цепочку сертификатов сервера. Убедитесь, что нет никаких проблем с корневыми или промежуточными сертификатами.

Если у вас есть доступ к серверу, вы можете воспользоваться утилитами, такими как OpenSSL, для проверки сертификатов и цепочки сертификатов. Если у вас нет доступа к серверу, вы можете обратиться к администратору сервера или хостинг-провайдеру для получения помощи в разрешении этой проблемы.

Исправление ошибки Tlsv1 alert unknown ca важно для обеспечения безопасного соединения с веб-сайтом. Убедитесь, что вы принимаете все необходимые меры для защиты данных и личной информации при посещении онлайн-ресурсов.

Шаг 1: Проверка версии TLS

Перед тем как начать исправлять ошибку Tlsv1 alert unknown ca, важно проверить, какая версия протокола TLS используется на вашем сервере. Это необходимо, так как устаревшие версии TLS могут приводить к появлению данной ошибки.

Следуйте этим шагам, чтобы проверить версию TLS:

  1. Откройте веб-браузер и введите адрес вашего сервера в адресной строке. Например, https://www.example.com.

  2. Далее, нажмите клавишу Enter на клавиатуре, чтобы перейти на сайт.

  3. После того, как страница загрузится, нажмите Ctrl + Shift + I (или откройте «Инструменты разработчика» из меню браузера) чтобы открыть панель «Инструменты разработчика».

  4. В открывшемся окне выберите вкладку Network (Сеть).

  5. После этого, обновите страницу, нажав Ctrl + R или кнопку «Обновить» на панели браузера.

  6. В списке запросов, найдите запрос с URL вашего сервера и щелкните по нему.

  7. На правой панели выберите вкладку Security (Безопасность).

  8. В этой вкладке вы увидите информацию о безопасном соединении, включая используемую версию TLS.

В результате, вы узнаете, какая версия TLS используется на вашем сервере. Если используется устаревшая версия TLS, нужно обновить ее до более новой для решения проблемы с ошибкой Tlsv1 alert unknown ca.

Шаг 2: Проверка сертификата SSL

После того, как вы убедились, что проблема вызывается ошибкой «Tlsv1 alert unknown ca», следующим шагом является проверка сертификата SSL на вашем сервере. Ошибки с сертификатом могут привести к возникновению данной ошибки.

Выполните следующие действия для проверки сертификата SSL:

  1. Откройте веб-браузер и введите URL-адрес вашего сайта.
  2. Рядом с адресной строкой веб-браузера должен отображаться замок (иконка безопасности).
  3. Щелкните по этой иконке, чтобы открыть панель сведений о сертификате SSL.
  4. Убедитесь, что сертификат был выдан надлежащим удостоверяющим центром (CA).
  5. Проверьте дату действия сертификата, убедитесь, что он не истек.
  6. Проверьте, что сайт соответствует имени в сертификате.
  7. Если у вас возникли какие-либо сомнения, свяжитесь с владельцем сайта или обратитесь в техническую поддержку.

Если сертификат SSL недействителен, испорчен или не соответствует вашему сайту, это может быть причиной ошибки «Tlsv1 alert unknown ca». В этом случае вам необходимо обратиться к своему удостоверяющему центру для получения нового сертификата или обновления существующего.

После того, как сертификат SSL будет исправлен или обновлен, повторите попытку подключения к вашему сайту и убедитесь, что ошибка больше не возникает. Если проблема не решена, переходите к следующему шагу.

Шаг 3: Проверка цепочки сертификатов

Проверка цепочки сертификатов является важным шагом при устранении ошибки Tlsv1 alert unknown ca. Цепочка сертификатов состоит из корневого сертификата, промежуточных сертификатов и конечного сертификата.

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

  1. Убедитесь, что на сервере установлен корневой сертификат. Корневой сертификат является самым верхним сертификатом в иерархии доверия. Если вы не уверены, что корневой сертификат установлен, обратитесь к администратору сервера.
  2. Проверьте наличие промежуточных сертификатов. Промежуточные сертификаты служат для связи между корневым сертификатом и конечным сертификатом. Они должны быть правильно установлены на сервере.
  3. Убедитесь, что конечный сертификат установлен на сервере. Конечный сертификат является сертификатом, который используется для защиты вашего веб-сайта. Если конечный сертификат отсутствует или установлен неправильно, это может вызвать ошибку Tlsv1 alert unknown ca.

Проверьте каждый из этих шагов, чтобы убедиться, что все сертификаты установлены и настроены правильно. Если вы обнаружили какие-либо проблемы, обратитесь к провайдеру ваших сертификатов или администратору сервера для помощи.

Шаг 4: Обновление корневых сертификатов

Если у вас возникла ошибка Tlsv1 alert unknown ca, возможно, вам необходимо обновить корневые сертификаты. Корневые сертификаты используются для проверки подлинности цифровых сертификатов, которые используются веб-сайтами. Обновление корневых сертификатов позволяет вашему браузеру правильно проверять подлинность сертификатов и избавляется от ошибки Tlsv1 alert unknown ca.

Чтобы обновить корневые сертификаты, выполните следующие действия:

  1. Откройте браузер и перейдите на официальный сайт вашего браузера.
  2. Найдите раздел загрузки или обновления сертификатов.
  3. Скачайте и установите последнюю версию корневых сертификатов.
  4. Перезапустите браузер.

После обновления корневых сертификатов, ваш браузер должен правильно проверять подлинность сертификатов и больше не возникать ошибка Tlsv1 alert unknown ca при доступе к защищенным сайтам.

Шаг 5: Обновление клиентского программного обеспечения

Если после выполнения предыдущих шагов ошибка Tlsv1 alert unknown ca все еще появляется, может понадобиться обновить клиентское программное обеспечение. Возможно, у вас устаревшая версия клиента, которая не поддерживает необходимые протоколы безопасности.

  1. Перейдите на официальный сайт разработчика вашего клиентского программного обеспечения.
  2. Проверьте, есть ли доступные обновления для вашего клиента.
  3. Скачайте и установите последнюю версию клиентского программного обеспечения.

После установки новой версии клиента перезапустите систему и повторите попытку подключиться к серверу, вызывавшему ошибку Tlsv1 alert unknown ca. Обновленная версия клиента должна быть совместима с требуемыми протоколами безопасности и решить проблему.

Если после обновления клиентского программного обеспечения ошибка Tlsv1 alert unknown ca все еще не устранена, рекомендуется обратиться в службу поддержки разработчика вашего клиента или провайдера интернет-услуг для получения дополнительной помощи.

Шаг 6: Проверка настройки SSL

После того, как вы настроили SSL на вашем сервере и установили сертификат, важно проверить, работает ли он корректно и не возникают ли ошибки.

Для проверки настройки SSL вы можете воспользоваться следующими инструментами:

  1. Браузер: Откройте ваш веб-сайт в браузере и убедитесь, что он открывается по защищенному протоколу HTTPS. Также удостоверьтесь, что в адресной строке браузера отображается зеленый замок или значок замка, указывающий на безопасное соединение.
  2. Онлайн-проверка сертификата: Существуют онлайн-сервисы, которые позволяют проверить валидность вашего сертификата. Вы можете воспользоваться такими сервисами, вводя доменное имя вашего веб-сайта.
  3. SSL Server Test (SSL Labs): Это инструмент, разработанный компанией Qualys, который позволяет провести комплексную проверку вашего сервера на наличие уязвимостей и правильность настройки SSL. Вы можете воспользоваться SSL Server Test, введя адрес вашего веб-сайта.

Убедитесь, что ваш сертификат валиден, ваш сервер настроен правильно и не возникает ошибок связанных с TLS/SSL.

Если вы обнаружили какие-либо проблемы или ошибки, связанные с TLS/SSL, вам потребуется отремонтировать или обновить ваше SSL-соединение.

Шаг 7: Изменение настроек безопасности

Если вы продолжаете сталкиваться с ошибкой Tlsv1 alert unknown ca после выполнения предыдущих шагов, может потребоваться изменение некоторых настроек безопасности на вашем компьютере.

Вот несколько рекомендаций по изменению настроек безопасности:

  • Проверьте наличие обновлений операционной системы и установите их, если они доступны. Это может помочь закрыть известные уязвимости и проблемы безопасности.
  • Проверьте наличие обновлений браузера и установите их, если есть. Возможно, разработчики браузера выпустили исправления, которые решат проблему с ошибкой Tlsv1 alert unknown ca.
  • Убедитесь, что у вас установлен актуальный антивирусный программный продукт и настроены его настройки безопасности. Некоторые антивирусные программы могут блокировать надежные соединения по ошибке, поэтому удостоверьтесь, что ваши настройки безопасности надлежащим образом настроены.

Если вы совершили все вышеуказанные действия, но проблема Tlsv1 alert unknown ca по-прежнему не решена, вам, возможно, придется обратиться за помощью к специалисту, который может диагностировать проблему и предоставить решение.

On the server, I’m initializing the SSLContext with my private key, the certfile provided by the CA that I’m loading from the caroot.crt file. Now, when I initialize this with something like node, everything works fine (for example: Setting up SSL with node.js). My intentions were to set everything up the same way. My assumption is that during the handshake, the server is providing the client with a CA, just like my node server would. It seems like that’s not the case. What am I doing wrong?

If ssl.CERT_REQUIRED isn’t used, everything works perfectly, but I’m wanting to validate that the endpoint (server) is who they say they are.

# Server
import socket
import ssl

context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
context.load_cert_chain(certfile='./path/to/certfile.crt', 
    keyfile='./path/to/keyfile.pem')
context.load_verify_locations('./path/to/caroot.crt')
context.set_default_verify_paths()

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('', 23000))
server_socket.listen(socket.SOMAXCONN)

def handle_client(ssl_socket):
    data = ssl_socket.read()
    while data:
        print("%s" % (str(data)))
        data = ssl_socket.read()

while True:
    client_socket, addr = server_socket.accept()
    ssl_client_socket = context.wrap_socket(client_socket, server_side=True)
    handle_client(ssl_client_socket)

# Client
import socket
import ssl

context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
# I'm assuming this is not necessary, but I'd like to load the system provided CAs
context.set_default_verify_paths()
# Require CA validation to prevent MITM.
context.verify_mode = ssl.CERT_REQUIRED

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_client = context.wrap_socket(client_socket)
ssl_client.connect(('', 23000))
ssl_client.send(bytes('hello, world!', 'UTF-8'))

PostgreSQL

Could not accept SSL connection

If you receive either of the following error messages, you are experiencing an issue with mismatched SSL versions.

LOG:  could not accept SSL connection: wrong version number
HINT:  This may indicate that the client does not support any SSL protocol version between TLSv1.1 and TLSv1.1.
LOG:  could not accept SSL connection: unsupported protocol
HINT:  This may indicate that the client does not support any SSL protocol version between TLSv1.2 and TLSv1.3.

In this case, the client is trying to connect to the server using a version of the TLS protocol that is not supported by the server. Check which version PostgreSQL supports and adjust the client-side TLS version.

You can check the TLS version by running the pg_config --configure command.

Kong recommends TLSv1.2 or higher. Lower versions are deprecated and are not considered secure.

Could not load server certificate file

If you are receiving this error message:

FATAL:  could not load server certificate file "server.crt": No such file or directory

The server is unable to find the certificate file. By default, the certificate file should be named server.crt, and it should be placed in the server’s data directory. Other names are allowed, but they should be explicitly specified in the ssl_cert_file.

Could not access private key file

If you are receiving this error message:

FATAL:  could not access private key file "server.key": No such file or directory

The server is unable to find the private key file. By default, the private key file should be named server.key, and it should be placed in the server’s data directory. If you used another naming convention it should be explicitly set using the ssl_key_file parameter in the postgresql.conf file.

Incorrect private key permissions

FATAL:  private key file "/certs/example.com.key" has group or world access
DETAIL:  File must have permissions u=rw (0600) or less if owned by the database user, or permissions u=rw,g=r (0640) or less if owned by root.

If you receive this error, the permissions for the private key are incorrect. Use the information in the error message to apply the correct permissions to your private key.

Failed to verify the SSL certificate

LOG:  could not accept SSL connection: tlsv1 alert unknown ca

The client has failed to verify the PostgreSQL server certificate. To resolve this issue, make sure that the certificate matches the one applied to Kong Gateway.

Certificate verify failed

LOG:  could not accept SSL connection: certificate verify failed

The PostgreSQL server failed to verify the client certificate. You can fix this by verifying that the server provided in the ssl_ca_file parameter in postgres.conf is trusted by the CA.

Certificate authentication failed for user

LOG:  provided user name (kong) and authenticated user name (foo@example.com) do not match
FATAL:  certificate authentication failed for user "kong"

This error message happens when the client certificate doesn’t match the username specified in the database.

Connection requires a valid client certificate

FATAL:  connection requires a valid client certificate

This error occurs when the PostgreSQL server requires a client certificate for authentication, but the client, in this case Kong Gateway, was unable to provide a valid certificate. For this type of error, check if pg_ssl_cert and pg_ssl_cert_key are correctly set in kong.conf.

Troubleshooting TLS on Kong Gateway

Protocol versions are not a match

If you receive either of the following error messages:

Error: [PostgreSQL error] failed to retrieve PostgreSQL server_version_num: tlsv1 alert protocol version
Error: [PostgreSQL error] failed to retrieve PostgreSQL server_version_num: unsupported protocol

The server and client versions are not in sync. Check the version that the PostgreSQL server is using and adjust the Kong Gateway version accordingly.

The server does not support SSL connections

Error: [PostgreSQL error] failed to retrieve PostgreSQL server_version_num: the server does not support SSL connections

This error occurs when SSL is not supported by PostgreSQL. Configure PostgreSQL according to the configuration instructions.

Certificate verify failed

Error: [PostgreSQL error] failed to retrieve PostgreSQL server_version_num: certificate verify failed

This error occurs when Kong Gateway fails to verify the PostgreSQL server certificate. Ensure that the PostgreSQL server has configured a trusted certificate and the corresponding CA chain is correctly set in lua_ssl_trusted_certificate within kong.conf.

Connection requires a valid client certificate

Error: [PostgreSQL error] failed to retrieve PostgreSQL server_version_num: FATAL: connection requires a valid client certificate

Kong Gateway requires a client certificate for authentication, but the client was unable to provide a valid certificate.

This error occurs when the PostgreSQL server requires a client certificate for authentication, but the Kong Gateway is unable to provide a valid certificate. For this type of error, check if pg_ssl_cert and pg_ssl_cert_key are correctly set in kong.conf.

tlsv1 alert unknown ca

Error: [PostgreSQL error] failed to retrieve PostgreSQL server_version_num: tlsv1 alert unknown ca

The PostgreSQL server failed to verify the client certificate. Use a client certificate which is trusted by the CA set in ssl_ca_file within postgres.conf.

Certificate authentication failed for user

Error: [PostgreSQL error] failed to retrieve PostgreSQL server_version_num: FATAL: certificate authentication failed for user "kong"

The common name of the client certificate doesn’t match the username set in the database. Add a username mapping in pg_ident.conf as described in the PostgreSQL configuration instructions.

Понравилась статья? Поделить с друзьями:
  • Ошибка tls что это
  • Ошибка tls на терминале
  • Ошибка tls как исправить
  • Ошибка tls аутентификации сертификат не соответствует настройкам приложения
  • Ошибка tlauncher the launcher cant start