У нас есть сайт, и нам нужно подключиться к сторонней службе, которая использует систему с определенной поддержкой шифров. Я пробовал LetsEncrypt и Comodo, но ни одна из них не работает.
Есть ли ресурс, который я могу найти, чтобы узнать, какой центр сертификации SSL поддерживает желаемые шифры, не выполняя установку и выполняя nmap --script ssl-enum-ciphers -p 443 example.org
Здесь поддерживаются ли шифры:
Cipher# 0 : TLS_RSA_WITH_AES_256_CBC_SHA256
Cipher# 1 : TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
Cipher# 2 : TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
Cipher# 3 : TLS_RSA_WITH_AES_256_CBC_SHA
Cipher# 4 : TLS_DHE_RSA_WITH_AES_256_CBC_SHA
Cipher# 5 : TLS_DHE_DSS_WITH_AES_256_CBC_SHA
Cipher# 6 : TLS_RSA_WITH_AES_128_CBC_SHA256
Cipher# 7 : TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
Cipher# 8 : TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
Cipher# 9 : TLS_RSA_WITH_AES_128_CBC_SHA
Cipher# 10 : TLS_DHE_RSA_WITH_AES_128_CBC_SHA
Cipher# 11 : TLS_DHE_DSS_WITH_AES_128_CBC_SHA
Cipher# 12 : TLS_EMPTY_RENEGOTIATION_INFO_SCSV
Cipher# 13 : TLS_DH_anon_WITH_AES_256_CBC_SHA256
Cipher# 14 : TLS_DH_anon_WITH_AES_256_CBC_SHA
Cipher# 15 : TLS_DH_anon_WITH_AES_128_CBC_SHA256
Cipher# 16 : TLS_DH_anon_WITH_AES_128_CBC_SHA
Cipher# 17 : SSL_RSA_WITH_DES_CBC_SHA
Cipher# 18 : SSL_DHE_RSA_WITH_DES_CBC_SHA
Cipher# 19 : SSL_DHE_DSS_WITH_DES_CBC_SHA
Cipher# 20 : SSL_DH_anon_WITH_DES_CBC_SHA
Cipher# 21 : TLS_RSA_WITH_NULL_SHA256
Cipher# 22 : SSL_RSA_WITH_NULL_SHA
Cipher# 23 : SSL_RSA_WITH_NULL_MD5
Cipher# 24 : TLS_KRB5_WITH_DES_CBC_SHA
Cipher# 25 : TLS_KRB5_WITH_DES_CBC_MD5
Сертификат не определяет явно, какие шифры доступны на сервере. На самом деле это контролируется (например, на серверах приложений, использующих OpenSSL) параметром конфигурации Cipher String, который позволяет администратору сервера включать или отключать определенные шифры или наборы шифров, либо отдавать предпочтение определенному порядку шифров.
Здесь есть полезная информация: https://www.owasp.org/index.php/TLS_Cipher_String_Cheat_Sheet
По сути, существует два типа сертификатов, которые различаются типом используемого открытого ключа: типичные сертификаты RSA и менее используемые сертификаты ECC. Первые используются для шифра с аутентификацией RSA (например, TLS_RSA_WITH_AES_256_CBC_SHA256
, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
... в вашем списке используется шифр с ECDAherS (в вашем списке нет шифра с ESipherS) и ECC с ESipherSA ваш список).
Некоторые шифры в вашем списке вообще не используют сертификаты, например TLS_DH_anon_WITH_AES_256_CBC_SHA
или TLS_KRB5_WITH_DES_CBC_SHA
. Другие шифры в вашем списке вообще не настоящие, а только псевдошифры: TLS_EMPTY_RENEGOTIATION_INFO_SCSV
. Кроме того, существуют шифры DSS, для которых требуются сертификаты DSA, которые в любом случае не выдаются общедоступными центрами сертификации.
Кроме того, многие шифры в этом списке ужасно небезопасны, например SSL_RSA_WITH_NULL_MD5
(без шифрования), SSL_RSA_WITH_DES_CBC_SHA
(легко взломать шифрование) или TLS_DH_anon_WITH_AES_256_CBC_SHA
(нет защиты от атак человека посередине, поскольку нет аутентификации сервера).
У нас есть сайт, и нам нужно подключиться к третьему партийная служба, использующая систему с поддержкой определенного шифра.
Если вам нужно подключиться к сторонней службе, значит, вы являетесь клиентом TLS. У клиентов TLS сертификатов обычно нет. Клиентам TLS могут потребоваться (клиентские) сертификаты, если требуется взаимная аутентификация. В этом случае тип сертификата не имеет никакого отношения к шифру - только сертификаты сервера имеют такое отношение. Но серверу, скорее всего, потребуются определенные сертификаты, такие как сертификаты, выданные сторонними центрами сертификации, или другие сертификаты с определенными свойствами. Какие свойства должен иметь сертификат, должны быть задокументированы сторонней службой.