HTTPS tidak bekerja pada Docker-Nginx

Saya sudah mendapat sertifikat ssl wildcard untuk*. domain.no dengan menghasilkan CSR dan saya menerima .file pem dari penyedia ssl. Sekarang saya memiliki file kunci termasuk:

server.kunci

sertifikat.pem (termasuk Sertifikat Menengah dan SSL-sertifikat)

Saya ingin menggunakan sertifikat ini pada docker-nginx yang menyertakan beberapa subdomain, file konfigurasi saya terlihat seperti di bawah ini:

/etc/nginx / conf.d / default.conf

server {   listen      443 ssl;   server_name     test.domain.no;   access_log  /var/log/nginx/nginx.access.log;   error_log   /var/log/nginx/nginx.error.log;   ssl    on;   ssl_certificate    /etc/ssl/certificates.pem;   ssl_certificate_key    /etc/ssl/server.key;   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   location /   {      proxy_pass         {dockerEndpoint};      proxy_redirect     off;    ##proxy_set_header   Host             $host;      proxy_set_header   X-Real-IP        $remote_addr;      proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;      client_max_body_size       10m;      client_body_buffer_size    128k;      proxy_connect_timeout      90;      proxy_send_timeout         90;      proxy_read_timeout         90;      proxy_buffer_size          4k;      proxy_buffers              4 32k;      proxy_busy_buffers_size    64k;      proxy_temp_file_write_size 64k;     }}

Nginx-Dockerfile:

FROM nginxVOLUME /etc/nginx/conf.dCOPY default.conf /etc/nginx/conf.d/COPY certificates.pem /etc/sslCOPY server.csr /etc/sslCOPY server.key /etc/ssl

Https tidak berfungsi dan memberikan kesalahan berikut di browser:

This site can’t be reachedTry:Checking the connectionChecking the proxy and the firewall

Karena saya memiliki kesalahan berikut di docker-logs, saya telah mengubah Dockerfile menjadi:

Kesalahan:

BIO_new_file("/etc/ssl/certificates.pem") failed (SSL: error:02001014:system library:fopen:Not a   directory:fopen('/etc/ssl/certificates.pem','r') error:2006D002:BIO   routines:BIO_new_file:system lib)nginx: [emerg] BIO_new_file("/etc/ssl/certificates.pem") failed (SSL:  error:02001014:system library:fopen:Not a   directory:fopen('/etc/ssl/certificates.pem','r') error:2006D002:BIO   routines:BIO_new_file:system lib)

Dockerfile Yang Dimodifikasi:

FROM nginxCOPY default.conf /etc/nginx/conf.d/#CMD ["nginx", "-g", "daemon off;"]RUN mkdir /etc/nginx/sslRUN chown -R root:root /etc/nginx/sslRUN chmod -R 600 /etc/nginx/sslCOPY certificates.pem /etc/nginx/sslCOPY server.key /etc/nginx/ssl

Sekarang tidak memberikan kesalahan dalam docker-log namun masih tidak bekerja dengan HTTPS. :(

Saya sudah mencoba untuk memeriksa kesalahan.masuk / var/log / nginx dengan menghubungkan ke nginx-container dan cat file tetapi tidak ada dalam file.

Bantuan apa pun akan dihargai.

Diperbarui:

Saya telah memodifikasi port kontainer docker Nginx menjadi 443 (- p 443: 443)dan mengubah izin /etc / nginx / ssl menjadi 644, sekarang jika saya membuka url menggunakan https itu memberikan kesalahan berikut:

There are issues with the site's certificate chain (net::ERR CERT COMMON_NAME_INVALID)

Meskipun mengatakan itu dikeluarkan oleh saya ssl-provider.

Saya pikir itu mungkin berfungsi pertama kali tetapi Anda lupa-p 443: 443 dari baris perintah docker.

Setelah Anda membuat perubahan, Anda disalin ke sertifikat ke jalan yang salah.

Ini mengharapkan file sertifikat di: /etc/ssl/certificates.pemdan Anda menyalinnya ke: /etc/nginx/ssl

Jadi cobalah mengubah file docker kembali ke apa yang anda miliki pada awalnya dan jalankan dengan-p 443:443.

Cara lain untuk menjalankan ini secara interaktif untuk tujuan pengujian.

docker run --net=host -ti yourcontainername /bin/bash

Itu akan membuat shell dalam wadah. Anda dapat memeriksa konfigurasi dengan memeriksa jalur dan cat'ing file konfigurasi.

Kemudian jalankan secara interaktif dengan nginx-g "daemon off"Periksa itu berfungsi, jika semuanya baik maka buat perubahan yang diperlukan dan jalankan lagi.

Itu hilang sertifikat lain dalam file. Berkas ssl_certificate (sertifikat.pem) harus disertakan tiga sertifikat:

"Sertifikat Menengah", "Sertifikat utama"dan" sertifikat Root".

Jadi saya telah meminta penyedia SSL untuk mengirimi saya sertifikat Root dan dengan menambahkan sertifikat itu ke .file pem, HTTPS berfungsi dengan baik.

Sertifikat.file pem terlihat seperti:

-----BEGIN CERTIFICATE----- (Your Primary SSL certificate: your_domain_name.crt) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Your Intermediate certificate: DigiCertCA.crt) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Your Root certificate: TrustedRoot.crt) -----END CERTIFICATE-----

@ Sarah apa statusnya sekarang dan beri tahu kami di forum mana kami akan men-debug lebih lanjut?

@ Sarah tolong apa status topik ini?

@Aleks masih ada masalah dengan sertifikat.

“Masih tidak berhasil” tidak benar-benar memberi kita banyak ruang untuk membantu. Lakukan beberapa diagnostik-Dapatkah anda melakukan ping ke wadah, Dapatkah Anda mencapai Nginx melalui http, dll.

Posting silang tidak disarankan oleh SE pertanyaan duplikat: https://stackoverflow.com/q/44358819/596285

@ Tim ini berfungsi dengan baik dengan http tetapi ketika saya mengubah konfigurasi untuk https, itu tidak berfungsi. Saya dapat mencapai wadah dan file konfigurasi dan direktori sertifikat terlihat baik-baik saja.

silakan dapat Anda pastebin output dari ’ curl-vk https://…'terima kasih