【问题标题】:Dropwizard + SSL ConfigurationDropwizard + SSL 配置
【发布时间】:2014-04-10 09:59:45
【问题描述】:

我无法使用 SSL 配置 Dropwizard..

按如下方式创建密钥/证书:

openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -days 365 -out server.crt -x509
keytool -import -file server.crt -keystore keystore.jks

我已将生成的 keystore.jks 与我的配置文件 (yml) 一起放置.. 我的配置文件有 http 条目:

http:
 port: 8443
 connectorType: nonblocking+ssl
 ssl:
  keyStore: ./keystore.jks
  keyStorePassword: XXXXXX

启动服务器..遇到异常:

javax.net.ssl.SSLHandshakeException: no cipher suites in common
 at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1290) ~[na:1.7.0_51]
 at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:513) ~[na:1.7.0_51]
 at sun.security.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1177) ~[na:1.7.0_51]
 at sun.security.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1149) ~[na:1.7.0_51]
 at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:469) ~[na:1.7.0_51]

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 这个异常是在启动服务器时还是在发出请求时出现的?

标签: dropwizard


【解决方案1】:

发送请求时会发生这种情况。
使用以下步骤重新创建密钥库,它工作正常。

openssl pkcs12 -export -name myservercert -in cert.pem -inkey privkey.pem -out keystore.p12

keytool -importkeystore -destkeystore keystore.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -alias myservercert

【讨论】:

  • 这至少缺少一个步骤。您是如何创建 PEM 文件的?
【解决方案2】:

在 dropwizard 配置(yml 文件)中添加类似于下面的内容。

connector:
    type: https
    port: 8443
    keyStorePath: /path/to/ssl/directory/keystore.jks
    keyStorePassword: changeme
    trustStorePath: /path/to/jre/lib/security/cacerts
    certAlias: selfsigned

【讨论】:

    【解决方案3】:

    添加到您的配置文件 (DW 0.7.1) 并删除您不需要的内容:

      adminConnectors:
        - type: http
          port: 8081
        - type: https
          port: 8444
          keyStorePath: config/unsecure.keystore
          keyStorePassword: password
          validateCerts: true
          headerCacheSize: 512 bytes
          outputBufferSize: 32KiB
          maxRequestHeaderSize: 8KiB
          maxResponseHeaderSize: 8KiB
          inputBufferSize: 8KiB
          idleTimeout: 30 seconds
          minBufferPoolSize: 64 bytes
          bufferPoolIncrement: 1KiB
          maxBufferPoolSize: 64KiB
          acceptorThreads: 1
          selectorThreads: 2
          acceptQueueSize: 8
          reuseAddress: true
          soLingerTime: 345s
          useServerHeader: true
          useDateHeader: true
          useForwardedHeaders: true
    

    【讨论】:

      猜你喜欢
      • 2020-05-06
      • 2016-05-02
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 2018-05-20
      • 2015-02-07
      相关资源
      最近更新 更多