2017-05-14 57 views
0

我使用nginx与我自己的ssl链,但我得到一个问题与Android 7. 我不明白this solutionAndroid 7 dosnt允许我letsencrypt SSL

我的nginx的配置是:

server { 

    listen 443 ssl; 
    listen [::]:443 ssl; 
    ssl_certificate /etc/letsencrypt/live/server.mydomain.cloud/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/server.mydomain.com/privkey.pem; 
    include snippets/ssl-params.conf; 

我该怎么办?谢谢!

+0

你参考的解决方案是node.js的,并不适用于nginx的。完整链(不包括root)的证书需要在'ssl_certificate'中,即在fullchain.pem中。我猜这个文件的内容是错误的或不完整的,但由于它是未知的,我无法证明它。根据[SSLLabs](https://www.ssllabs.com/ssltest/analyze.html)检查您的网站,并查找有关缺少链式证书的错误。 –

+0

@SteffenUllrich DNS CAA \t否(更多信息)。总体评分A,是的,我使用nodejs –

+0

但基于你的问题,你使用nginx来服务SSL,因为你为什么要显示nginx配置,而不是nodejs配置。因此,使用nodejs并不重要,至少不会出现这种问题。如果你要发布URL,我可以仔细看看,但是根据这个问题的信息,只能说出发生了什么。此外,您没有描述完全与Android 7有什么问题。 –

回答

0

我的解决方案,现在它的工作:

 ConnectionSpec spec = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS) 
      .tlsVersions(TlsVersion.TLS_1_2) 
      .cipherSuites(
        CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, //aws ssl 
        CipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA) //letsencrypt 
      .build(); 

    OkHttpClient.Builder builder = new OkHttpClient.Builder() 
      .connectionSpecs(Collections.singletonList(spec)) 
      .addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)); 

    Parse.initialize(new Parse.Configuration.Builder(getApplicationContext()) 
      .clientBuilder(builder) 
      .applicationId("") 
      .clientKey("") 
      .server("") 
      .build());