Saya mencoba untuk beralih dari sertifikat yang ditandatangani sendiri ke Mari Enkripsi sertifikat di server web nginx saya.
Saat ini, saya mengarahkan semua permintaan untuk http/80
ke https/443
, yang menggunakan sertifikat yang ditandatangani sendiri saya buat beberapa waktu lalu.
Sekarang - dari apa yang saya mengerti Let's Encrypt membuat permintaan ke port 80 (karena saya menggunakan webroot
opsi certbot
). Permintaan ini dialihkan, yang menyebabkan pembuatan sertifikat tidak berhasil.
Saya mencoba mencapai ini dengan blok server berikut, mendengarkan di port 80:
server {
listen 80;
server_name sub.domain.tld;
server_tokens off;
location /.well-known {
root /var/www/letsencrypt;
}
location / {
return 301 https://$host$request_uri;
}
}
Tetapi permintaan untuk /.well-known
dialihkan ke https/443
anyways.
Bagaimana saya bisa mengalihkan semua permintaan dari http/80
ke https/443
, kecuali permintaan ke /.well-known/
?
webroot
daricertbot
opsi membutuhkan http polos.wget
/curl
Jawaban:
Coba ini:
Karena tidak ada
try_files
entri di server virtual Anda, itu tidak tahu apa yang harus dilakukan dengan permintaan yang masuk/.well-known
.sumber
location
tanpatry_files
hanya mengirim file dariroot
direktori.try_files
dan berfungsi dengan baik untuk saya. Sebenarnya saya memiliki konfigurasi yang sama persis seperti yang dinyatakan dalam pertanyaan. Hanya perbedaan yanglocation /.well-known/
terjadilocation /.well-known
(perhatikan garis miringnya). Jadi, mungkin di situlah masalahnya?