Исправить Код ошибки: ssl_error_no_cypher_overlap на Tomcat 8

У меня есть дешевый SSL-сертификат, который я хочу настроить с помощью Tomcat 8.0.26.

Я запускаю эту команду в Linux для создания хранилища ключей:

[root@ cert]# keytool -import -alias root -keystore tomcat.jks -trustcacerts -file AddTrustExternalCARoot.crt
Enter keystore password:
Re-enter new password:
Certificate already exists in system-wide CA keystore under alias <addtrustexternalroot>
Do you still want to add it to your own keystore? [no]:  yes
Certificate was added to keystore
[root@ cert]# keytool -import -alias intermediate1 -keystore tomcat.jks -trustcacerts -file COMODORSAAddTrustCA.crt
Enter keystore password:
Certificate was added to keystore
[root@ cert]# keytool -import -alias intermediate2 -keystore tomcat.jks -trustcacerts -file COMODORSADomainValidationSecureServerCA.crt
Enter keystore password:
Certificate was added to keystore
[root@ cert]# keytool -import -alias tomcat -keystore tomcat.jks -trustcacerts -file www_some_domain_com.crt
Enter keystore password:
Certificate was added to keystore
[root@ip-172-31-28-148 cert]#

Я обновил server.xml

<Connector port="8443" protocol="HTTP/1.1"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               keystoreFile="/opt/apache-tomcat-8.0.26/cert/tomcat.jks"
               keystorePass="pass"
               sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1"
               clientAuth="false" sslProtocol="TLS" />

Я обновил web.xml для перенаправления SSL-соединений.

<security-constraint>
      <web-resource-collection>
          <web-resource-name>Entire Application</web-resource-name>
          <url-pattern>/*</url-pattern>
      </web-resource-collection>
          <user-data-constraint>
          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
          </user-data-constraint>
    </security-constraint>

Но когда я открываю веб-страницу, я получаю

Произошла ошибка при подключении к some_domain.com:8443. Невозможно безопасно обмениваться данными с одноранговым узлом: нет общих алгоритмов шифрования. (Код ошибки: ssl_error_no_cypher_overlap)

Ты хоть представляешь, где моя ошибка? Пробовал и без sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1" но результата нет.


person Peter Penzov    schedule 15.09.2015    source источник
comment
Выполнить keytool -list -v -keystore tomcat.keystore. У вас есть запись типа PrivateKeyEntry НЕ trustedCertEntry, которая содержит ваш сертификат? Если нет, объясните, как и где именно вы сгенерировали закрытый ключ и CSR, которые вы использовали для получения сертификата. Ваш сертификат будет работать только с этим закрытым ключом. Кроме того, сегодня практически все общедоступные центры сертификации требуют наличие сертификата цепочки, а иногда и более одного. Если центр сертификации предоставил вам какие-либо сертификаты цепи, опишите их, в противном случае опишите центр сертификации.   -  person dave_thompson_085    schedule 15.09.2015
comment
@dave_thompson_085 Я обновил пост. Получается, что процедура другая.   -  person Peter Penzov    schedule 15.09.2015
comment
Ваша (отредактированная) процедура выглядит правильно для сертификатов цепочки, но вы ничего не показываете о закрытом ключе. Как я уже спрашивал, находится ли закрытый ключ в этом хранилище ключей? Если нет, то где? Вам нужны и закрытый ключ, и (выданный) сертификат с сертификатами цепочки.   -  person dave_thompson_085    schedule 16.09.2015