【问题标题】:ERR_SSL_VERSION_OR_CIPHER_MISMATCH on JhipsterJhipster 上的 ERR_SSL_VERSION_OR_CIPHER_MISMATCH
【发布时间】:2020-01-27 16:51:46
【问题描述】:

我正在使用 Jhipster 部署我的第一个应用程序。 首先,我在 8080 端口上启动了具有标准 HTTP 支持的应用程序,并且一切正常。 现在我想升级到 HTTPS,但到目前为止,我还没有深入了解它。

我将应用程序打包为 JAR,并将其部署在带有 jdk 1.8 的 Ubuntu 服务器 18.04 上。我按照 Jhipster 提供的文档在此链接 (https://maximilian-boehm.com/hp2121/Create-a-Java-Keystore-JKS-from-Let-s-Encrypt-Certificates.htm) 上生成让我们加密;我测试了使用https://ssllabs.com 生产的 jks,我得到了 A 的总体评价。

这是我的 application-prod.yml 的一部分:

server:
    port: 10443
    ssl:
        enabled: true
        key-store: keystore.jks
        key-store-password: mypassword
        keyStoreType: PKCS12
        key-alias: selfsigned
        ciphers: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
        enabled-protocols: TLSv1.2

当我启动 jar 时,应用程序正常启动, 但是当我尝试连接到主页时,

我回来了“ERR_SSL_VERSION_OR_CIPHER_MISMATCH”

我尝试更改密码,但它不起作用。

谢谢

【问题讨论】:

  • 嗨,您认为最好使用代理

标签: spring spring-boot https jhipster tls1.2


【解决方案1】:

通常,问题在于您使用的是较低版本的 Jhipster,但使用的是较高版本的 ssl 属性,反之亦然。

  • 检查密钥库属性中提供的路径是否与文件路径匹配。
  • 然后检查您使用的 SSL 属性是否与您的版本相匹配。我正在使用 Jhipster 3.0.7 版和 Spring 5.1.11 版。
ssl:  
    key-store: classpath:config/tls/keystore.p12
    key-store-password: ****
    key-store-type: pkcs12
    key-alias : yourAlias
    ciphers: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
    enabled-protocols: TLSv1.2

  • 最新版本的 Jhipster 使用:
ssl:
    key-store: keystore.p12
    key-store-password: <your-password>
    keyStoreType: PKCS12
    keyAlias: <your-application>
    ciphers: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
    enabled-protocols: TLSv1.2
  • 假设您的 SSL 配置正确,请重新检查您用于创建密钥的过程。如果您使用 OPENSSL 创建 .key 和 .csr 文件证书颁发机构并从它们那里获得 .crt 文件。然后使用以下命令创建 PKCS 文件。 需要注意的一点是在创建文件时不会询问别名,因此您不应在 SSL 配置中提供它。
openssl pkcs12 --export -out keystore.p12 -inkey <key-name>.key -in <cert-name>.crt

【讨论】:

    猜你喜欢
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    相关资源
    最近更新 更多