Certbot: Dukungan HTTP2 di plugin Nginx

Dibuat pada 17 Okt 2016  ·  31Komentar  ·  Sumber: certbot/certbot

Pisahkan dari #3640.

nginx feature request significant

Komentar yang paling membantu

Dari #3640

Saat ini plugin nginx menambahkan:
listen 443 ssl; # managed by Certbot

Opsi untuk HTTP 2 akan bagus, baik dengan menentukan flag --http2 atau cukup periksa kompatibilitas nginx.

listen 443 ssl http2;
listen [::]:443 ssl http2;

Semua 31 komentar

Dari #3640

Saat ini plugin nginx menambahkan:
listen 443 ssl; # managed by Certbot

Opsi untuk HTTP 2 akan bagus, baik dengan menentukan flag --http2 atau cukup periksa kompatibilitas nginx.

listen 443 ssl http2;
listen [::]:443 ssl http2;

Ada kemajuan dalam masalah ini? Jika saya menambahkan http2 secara manual, apakah akan dihapus saat diperbarui?

Tidak. Memperbarui sertifikat Anda dengan certbot renew tidak akan mengubah baris ini.

Baru saja memeriksa masalah saya mengenai ini dan melihatnya ditutup 22 jam yang lalu.

Saya kira berita bahwa fitur itu ditambahkan akan diterbitkan di sini, pertama dan terutama?

Anehnya, rgrep -il http2 certbot-nginx tidak menghasilkan apa-apa. Jadi masih belum dilaksanakan.

@benqzq , ya. Setiap berita tentang kemajuan ini akan ditambahkan di sini. Topik di forum komunitas Let's Encrypt ditutup secara otomatis setelah 30 hari tidak ada aktivitas.

Saya sarankan menambahkan tanda --lhttp ( l berarti "terbaru") sehingga kami tidak akan menguncinya ke versi tertentu dari http. Meskipun l mungkin membingungkan (mungkin --LH ?).

@benqzq Mengapa membuat hal-hal sederhana menjadi rumit? --http2 cukup jelas

  • perilaku default adalah http2 off
  • --http2 mengaktifkan http2

Terkadang itu yang Anda butuhkan, setidaknya sedikit, tetapi bagaimanapun, saya setuju untuk notasi umum. Entah itu IMHO yang bagus ( --http2 atau notasi umum seperti yang saya sarankan).

Ini adalah alat yang sangat penting, saya berharap seseorang akan menambahkannya ...

Perhatikan saja bagaimana saya mengotomatiskannya hingga argumen tersedia:

sed -i "s/listen 443 ssl;/listen 443 ssl http2;/" /etc/nginx/sites-available/$domain.conf

Apakah masih belum ada cara untuk mengaktifkan http2 dengan certbot? Apakah ada yang punya solusi?

@KyleTryon Saya memberikan solusi sed saya di atas, tetapi tampaknya masih belum ada cara resmi. Aku tidak mengerti itu.

@bendqh Seseorang itu mungkin kamu!

Anehnya fitur ini masih belum ditambahkan. :-)

@yw662 , apakah Anda tertarik untuk mengirimkan permintaan tarik untuk itu?

Sangat mudah untuk mengatasinya jadi ...... Anda tahu, kalau saja saya punya waktu untuk itu. Saya pikir ini adalah masalahnya. Cara mengatasinya mudah, tetapi mengubah skrip tidak semudah :-).

Bangkit untuk 2019.

0 0,12 * * * certbot renew --quiet
1 0,12 * * * sed -i "s/listen 443 ssl;/listen 443 ssl http2;/" /etc/nginx/sites-available/default
2 0,12 * * * sed -i "s/443 ssl ipv6only=on;/443 ssl http2 ipv6only=on;/" /etc/nginx/sites-available/default
3 0,12 * * * systemctl nginx reload

--http2 akan tampak jauh lebih mudah...

@rowan-OzRunways Bukankah ini https://github.com/certbot/certbot/issues/3646#issuecomment -323814774 valid untuk Anda? Cukup tambahkan http2 dengan tangan sekali dan itu tidak boleh disentuh pada pembaruan .

Hmm saya pikir itu dibersihkan. Itu jelas sekali tapi itu mungkin certbot-auto Terima kasih, saya akan memeriksanya.

:+1: :+1: :+1: Bump
Ini hari ulang tahunku tolong tambahkan ini terima kasih

Sungguh menakjubkan betapa banyak pengembang mengandalkan konfigurasi ambigu (otomatis) daripada meminta sertifikat secara manual dan menyesuaikan blok server Nginx dengan kebutuhan mereka...

perilaku default adalah http2 off
--http2 mengaktifkan http2

Ini adalah ide yang buruk karena akan berubah menjadi TAHUN-TAHUN tutorial copy-paste online yang menganggap HTTP/2 tidak didukung secara default, yang pasti pada akhirnya akan (dan kemudian HTTP/3).... jika ada, sebaliknya mungkin lebih masuk akal, untuk menonaktifkan HTTP/2 dengan flag, dll. Tidak ada alasan untuk menambahkan flag perintah yang relevan dengan cepat jika Anda mengandalkan otomatisasi konfigurasi "bodoh".

"Solusi" secara manual meminta sertifikat:

certbot certonly --noninteractive --agree-tos --expand -m ${SSL_EMAIL} -d ${SITE_DOMAIN_ONE} -d ${SITE_DOMAIN_TWO} --webroot -w /var/www/html/

Ref: https://github.com/littlebizzy/slickstack/blob/master/ss-encrypt.txt

...dan kemudian menggunakan blok server Nginx khusus, misalnya:

server {
listen                 443 ssl http2;
listen                 [::]:443 ssl http2 ipv6only=on;
server_name            @DOMAIN;
    if ($http_host != "@DOMAIN") {
        return 301            $scheme://@DOMAIN$request_uri;
    }

Ref: https://github.com/littlebizzy/slickstack/blob/master/nginx/default-single-site.txt
Ref: https://github.com/littlebizzy/slickstack/blob/master/nginx/nginx-conf.txt

Plugin nginx kami saat ini tidak mendukung pengaktifan dukungan HTTP/2 bahkan dengan flag --http2 . Itulah yang sedang dilacak oleh masalah ini.

Adapun perilaku default kami, apa yang telah kami lakukan dengan flag seperti --redirect di masa lalu adalah untuk awalnya menerapkan dukungan yang tersembunyi di balik flag dan mendorong pengguna kami untuk mencobanya. Setelah diuji dengan baik, kita dapat melihat menjadikannya sebagai perilaku default untuk semua pengguna setelah memastikan bahwa hal itu tidak akan merusak (m)konfigurasi apa pun.

@jessuppi

Sungguh menakjubkan betapa banyak pengembang mengandalkan konfigurasi ambigu (otomatis) daripada meminta sertifikat secara manual dan menyesuaikan blok server Nginx dengan kebutuhan mereka...

Anda benar-benar kehilangan intinya. Tentu saja Anda dapat melakukannya sendiri tetapi ada fungsi yang disertakan dengan klien certbot yang harus ditingkatkan. Apakah Anda harus membiarkan certbot mengonfigurasi server web Anda sepenuhnya di luar cakupan masalah ini.

Masalah ini sekarang berusia 4 tahun . Saya rasa orang tidak terlalu peduli apakah mereka harus menggunakan flag --http2 atau --no-http2 , selama certbot melakukannya secara otomatis untuk kita.

@bmw mengapa ada penundaan yang begitu lama pada sesuatu yang seharusnya relatif sederhana - dibandingkan dengan semua perubahan besar yang telah dilaksanakan dalam 4 tahun terakhir? Tentunya, tim certbot harus setuju bahwa dukungan yang tepat untuk versi HTTP2 yang lebih baru juga penting...

@bmw mengapa ada penundaan yang begitu lama pada sesuatu yang seharusnya relatif sederhana

Karena ada banyak masalah Certbot dan kami adalah tim kecil sehingga kami harus memprioritaskan hal-hal. Saya setuju ini memiliki nilai, kami hanya belum bisa mencapainya.

Saya akan menambahkan label prioritas untuk masalah ini sehingga kami dapat lebih mudah melihatnya saat mencari proyek baru di masa mendatang.

Hai, yang di sana. Saya berasumsi bahwa meskipun perbaikan disediakan untuk certbot untuk mendukung konfigurasi NGINX http2 , ini tidak akan memperbaiki fakta bahwa Boundler masih tidak dapat melakukan pemeriksaan root web terhadap koneksi HTTP/2, bukan? lihat Link ini

Ini tentang http2 pada port yang tidak terenkripsi. Ini tidak benar-benar masalah di sini. Kami hanya ingin opsi http2 ditambahkan ke direktif listen pada port 443 dengan enkripsi.

@cperrin88 Tentu, tetapi sesuatu yang perlu diingat adalah bahwa NGINX tidak dapat melakukan peningkatan protokol HTTP/1.1 -> HTTP/2 h2c , oleh karena itu, ketika menggunakan validasi webroot, Boundler, server yang digunakan oleh let'sencrypt untuk melakukan pertukaran tantangan, hanya dapat mengasumsikan server berbicara HTTP/1.1 dan mengeluh dengan kesalahan: "Server berbicara HTTP/2 melalui HTTP" sebaliknya.

Jadi itu sesuatu yang perlu diingat ketika tambalan untuk masalah ini akan menjadi kenyataan IMHO :)

Perubahan ini seharusnya tidak menambahkan http2 ke port yang tidak terenkripsi. Tapi kita harus mengingatnya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat