Şifreleyelim - nginx - OCSP zımbalama


11

Nginx sunucumda OCSP zımbalamasını etkinleştirmek istiyorum. kullanıyorum

  • nginx sürümü: nginx / 1.6.2
  • debian
  • Sertifikayı Şifreleyelim

Bu konuda gerçekten tecrübesizim, bu yüzden önemsiz bir sorun olabilir.

İşte benim nginx güvenlik yapılandırmam

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_dhparam /etc/ssl/private/dhparams_4096.pem;

İşte benim site / Sunucu güvenlik yapılandırması:

    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";

    # All files have been generated by Let's encrypt
    ssl_certificate /etc/letsencrypt/live/myexample.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/myexample.org/privkey.pem;

    # Everything below this line was added to enable OCSP stapling
    # What is that (generated file) and is that required at all?
    ssl_trusted_certificate /etc/letsencrypt/live/myexample.org/chain.pem;

    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;

Bunun OCSP zımbalamasını etkinleştirmek için yeterli olacağını okudum.

Ama eğer test edersem

 openssl s_client -connect myexample.org:443 -tls1 -tlsextdebug -status

Aşağıdaki yanıtı alacağım:

TLS server extension "renegotiation info" (id=65281), len=1
0001 - <SPACES/NULS>
TLS server extension "EC point formats" (id=11), len=4
0000 - 03 00 01 02                                       ....
TLS server extension "session ticket" (id=35), len=0
TLS server extension "heartbeat" (id=15), len=1
0000 - 01                                                .
OCSP response: no response sent
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X1
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
 0 s:/CN=myexample.org
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X1
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X1
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
[...]

Özellikle

OCSP response: no response sent

Neyi yanlış yapıyorum?

Sertifika hiyerarşisi:

  • DST Kökü CA X3
    • Otoriteyi Şifreleyelim X1
      • myexample.org

DÜZENLE:

OCSP: URI: http://ocsp.int-x1.letsencrypt.org/
CA-Issuer: URI: http://cert.int-x1.letsencrypt.org/

Zincirinizdeki sertifikaların AIA uzantılarında OCSP URL'si var mı?
16:56

1
@Braiam - Doğru belgeye bağlandınız mı? Orada OCSP'den bahsedilmiyor. Bu yorumu + 1'leyen kişiye - önce okudunuz mu?
garethTheRed

@garethTheRed Mesajımı OCSP URL'sini sertifikadan eklemek için düzenledim.
ST-DDT

@Braiam Bağlantılı belgenizi okudum ve AFAICT Her şeyi orada açıklandığı gibi yaptım. (Ne güvenlikle ne de sorumla ilgili olan cronjob hariç)
ST-DDT

Harika! Orada. Ne yazık ki, nginx ile çok uğraşmadım, bu yüzden yapılandırmanıza gerçekten yardımcı olamaz. URL'nin gerçekte olup olmadığı ilk akla gelen şeydi. Diğer tek düşünce sizin fullchain.pemve chain.pemdosyalarınız - aynı mı? Olmamalı ssl_trusted_certificateyönerge de kullanmak fullchain.pemdosyasını?
garethTheRed

Yanıtlar:


10

Standart nginx kurulumundan sonra bir ssl_trusted_certificatezincir belirtmeniz gerekmez . Aşağıdakiler yeterli olmalıdır:

ssl_certificate /etc/letsencrypt/live/myexample.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/myexample.org/privkey.pem;
ssl_stapling on;
ssl_stapling_verify on;

Daha fazla bağlam için buraya bakın .


Güzel, bu benim nginx conf basitleştirir ve aynı zamanda iyi çalışır!
Shautieh

Bu site ssldecoder.org ile herhangi bir ipucu test ederken hala bir hata alıyorum ?
Alexander Schranz

tüm bloklarda etkinleştirmeniz gereken çoklu ssl'niz olduğunda sorunu çözdünüz, aksi takdirde nginx sessizce başarısız olacaktır.
Alexander Schranz

9

Çözümü orada bulduğum eğiticiye göre buldum :

cd /etc/ssl/private
wget -O - https://letsencrypt.org/certs/isrgrootx1.pem https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem https://letsencrypt.org/certs/letsencryptauthorityx1.pem https://www.identrust.com/certificates/trustid/root-download-x3.html | tee -a ca-certs.pem> /dev/null

ve bunu site / sunucu yapılandırmanıza ekleyin

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/ssl/private/ca-certs.pem;

Yapılandırmanızı yeniden yükleyin

ÖNEMLİ: Tarayıcınızı açın ve web sayfanıza bir kez erişin.

Daha sonra sunucunuzu bu cmd ile yerel olarak test edebilirsiniz:

openssl s_client -connect myexample.org:443 -tls1 -tlsextdebug -status

Büyük olasılıkla bunun gibi geçerli bir yanıt alacaksınız

OCSP response:
======================================
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
    Version: 1 (0x0)
    Responder Id: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X1

Bir endişeniz olmasın

Verify return code: 20 (unable to get local issuer certificate)

altta da , Let's şifreleyelim sertifikası henüz varsayılan güvenilir sertifika depolarında değil. (Çok fazla SSL deneyimim yok, bu yüzden yanlış olabilirim)

Sunucuda aşağıdaki cmd'yi çalıştırırsanız hata görünmez:

openssl s_client -CApath /etc/ssl/private/ -connect myexample.org:443 -tls1 -tlsextdebug -status

Bundan sonra sunucunuzu aşağıdakileri kullanarak test edebilirsiniz:

https://www.digicert.com/help/

Şu anda OCSP yanıtlarının ssllabs testleri tarafından alınamayacağını unutmayın. Bunun, sertifikayı şifreleyelim henüz varsayılan güvenilir sertifika depolarında olmadığından dolayı olduğunu varsayalım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.