2017-05-14 30 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());