【问题标题】:Jetty - .cer/.p7b - no suite cipher (No cipher suites in common)码头 - .cer/.p7b - 没有套件密码(没有共同的密码套件)
【发布时间】:2020-01-07 16:59:38
【问题描述】:

我对证书知之甚少。

需要为作为应用程序一部分的码头(v.9.4.11)添加证书。

尝试使用自签名 - 一切正常。但是现在,需要组织官方证书。

管理员给了我 2 个文件 - .cer 和 .p7b。应用程序文档说足够的命令,例如:

keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore keystore.jks

我将使用 .cer 而不是 .crt 尝试此命令。创建了密钥库,配置了 jetty-http.xml 并启动了应用程序。尝试打开 - 并出现错误 SSL_ERROR_NO_CIPHER_OVERLAP。

检查 openssl 使用 -tsl1/1_1/1_2 连接到我的地址 - 没有,连接正常,但密钥库中没有。

检查密钥库的 keytool 内容 - 1 个条目、trustedCertEntry 和无密钥(非私有/非公开)

是否只使用这 2 个文件进行配置 - .cer/.p7b 还是我需要其他文件?

【问题讨论】:

    标签: ssl jetty-9


    【解决方案1】:

    问题是初学者的 .csr 文件不正确。 -重新创建它

    • 获取 .cer

    • 在 cmd 中运行:certutil -repairstore my "serial" for generate key

    • 导出为 .pfx

    -将应用程序连接到 .pfx

    【讨论】:

      【解决方案2】:

      通常在设置 SSL 证书时,您通常会拥有 2 或 3 个文件。

      证书的基本工作格式是证书/密钥对。 例如,您可以拥有 example.com 的证书及其关联的密钥。

      example.com.cer
      example.com.key
      

      如果证书是使用提供商创建的,您很可能还需要根证书颁发机构。例如,在我们的基础架构中,我们的 ROOT CA 采用 .pem.cer 格式。这是我的一个网络服务器的配置,使用 entrust.crt 作为根 ca 链文件:

      SSLCertificateFile /etc/apache2/ssl/apache.crt
      SSLCertificateKeyFile /etc/apache2/ssl/apache.key
      SSLCertificateChainFile /etc/apache2/ssl/entrust.crt
      

      在您的情况下,您有一个 .p7b 文件。 P7B 文件通常有多个条目,它们可以包含证书和 ROOT CA 的链。您可以在 Windows 机器中打开 p7b,然后找到证书并右键单击 > 导出。以 Base64 格式导出文件并将其设置在您的服务器上。

      【讨论】:

      • 试试这个,但没有帮助:(
      • 你能展示你的配置吗?应用程序的配置(它指向 SSL 文件的位置)和 SSL 证书目录的内容?
      • 从技术上讲,链文件更多是中间证书的列表,根据需要,因为(自签名)根在信任存储中并且在 TLS 握手期间不交换。 .pem.cer(或 .crt.cert)只是扩展名,并且是任意的,它们的存在只是为了方便人类工作。除此之外还有两种编码格式(PEM 和 DER)和各种容器格式(PKCS#7、PKCS#12)
      • @Dexirian 在通过 openssl 测试自签名时给出了正常的答案,以及什么可以在商店中提供证书,如果密钥不存在,只有trustedCertEntry 并且任何请求基本上给出NULL
      • @Dexirian 在您的密钥库中您也只有trustedCertEntry 或privateKey?
      猜你喜欢
      • 1970-01-01
      • 2017-05-08
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 2017-08-28
      相关资源
      最近更新 更多