Score:0

การติดตั้ง Apache SSL [ไม่ซ้ำกัน]

ธง ch

ฉันกำลังพยายามติดตั้งใบรับรอง ssl บนเซิร์ฟเวอร์ Ubuntu ของฉัน 20.04

ฉันได้ดาวน์โหลดไฟล์ ssl และวางไว้ใน /home/ubuntu (จะเปลี่ยนเมื่อใช้งานได้):

  • api_limitlesssoft_com_key.txt
  • api.limitlesssoft.com.p7b
  • api.limitlesssoft.com.crt
  • api.limitlesssoft.com.ca-bundle

ตอนนี้สิ่งที่ฉันทำคือแก้ไขไฟล์โฮสต์เสมือนให้มีลักษณะดังนี้:

LoadModule โมดูล ssl_module/mod_ssl.so
LoadModule proxy_module โมดูล/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<โฮสต์เสมือน *:80>
        ชื่อเซิร์ฟเวอร์ api.limitlesssoft.com
        ผู้ดูแลระบบเซิร์ฟเวอร์ [email protected]

        ProxyPreserveHost เปิด
        ProxyPass / http://127.0.0.1:5000/
        ProxyPassReverse / http://127.0.0.1:5000/

        บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log รวมกัน
</เวอร์ชวลโฮสต์>

<โฮสต์เสมือน *:443>
        ชื่อเซิร์ฟเวอร์ api.limitlesssoft.com
        ผู้ดูแลระบบเซิร์ฟเวอร์ [email protected]

        ProxyPreserveHost เปิด
        ProxyPass / http://127.0.0.1:5000/
        ProxyPassReverse / http://127.0.0.1:5000/

        บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log รวมกัน

        SSLEngine เปิดอยู่
        SSLCertificateFile /home/ubuntu/api.limitlesssoft.com.crt
        SSLCertificateKeyFile /home/ubuntu/api_limitlesssoft_com_key.txt
        SSLCertificateChainFile /home/ubuntu/api.limitlesssoft.com.ca-bundle
</เวอร์ชวลโฮสต์>

และด้วยเหตุผลบางอย่างเท่านั้น http หนึ่งทำงาน

a2enmod ssl ส่งคืนว่ามันกำลังทำงานอยู่ ฉันวิ่งแล้ว ซูโด ufw 443 และเปิดใช้งานอยู่

ubuntu@ubuntu:/var/log/apache2$ telnet localhost 443
ลอง 127.0.0.1...
เชื่อมต่อกับ localhost
อักขระ Escape คือ '^]'
ubuntu@ubuntu:/var/log/apache2$ sudo netstat -peanut | เกรป ':80'
tcp6 0 0 :::80 :::* ฟัง 0 46821 3493/apache2   
ubuntu@ubuntu:/var/log/apache2$ sudo netstat -peanut | เกรป ':443'
tcp6 0 0 :::443 :::* ฟัง 0 46825 3493/apache2   
tcp6 0 0 127.0.0.1:443 127.0.0.1:45968 TIME_WAIT 0 0 -  

ubuntu@ubuntu:/var/log/apache2$ netstat -a -n
การเชื่อมต่ออินเทอร์เน็ตที่ใช้งาน (เซิร์ฟเวอร์และจัดตั้งขึ้น)
Proto Recv-Q Send-Q ที่อยู่ในท้องถิ่น สถานะที่อยู่ต่างประเทศ
tcp 0 0 127.0.0.1:5000 0.0.0.0:* ฟัง
tcp 0 0 127.0.0.53:53 0.0.0.0:* ฟัง
tcp 0 0 0.0.0.0:22 0.0.0.0:* ฟัง
tcp 1 0 127.0.0.1:41170 127.0.0.1:5000 CLOSE_WAIT
tcp 0 192 192.168.1.109:22 192.168.1.2:61495 ก่อตั้ง
tcp6 0 0 ::1:5000 :::* ฟัง
tcp6 0 0 :::80 :::* ฟัง
tcp6 0 0 :::21 :::* ฟัง
tcp6 0 0 :::22 :::* ฟัง
tcp6 0 0 :::443 :::* ฟัง
udp 0 0 127.0.0.53:53 0.0.0.0:*
udp 0 0 192.168.1.109:68 0.0.0.0:*
raw6 0 0 :::58 :::* 7

ubuntu@ubuntu:~$ สถานะ sudo ufw
สถานะ: ใช้งานอยู่

ถึงการดำเนินการจาก
-- ------ ----
33380 อนุญาตได้ทุกที่
443 อนุญาตได้ทุกที่
22 อนุญาตได้ทุกที่
80 อนุญาตได้ทุกที่
33380 (v6) อนุญาตทุกที่ (v6)
443 (v6) อนุญาตได้ทุกที่ (v6)
22 (v6) อนุญาตทุกที่ (v6)
80 (v6) อนุญาตทุกที่ (v6)

และนี่คือการเริ่มต้นแอปพลิเคชันของฉัน (เมื่อการดีบักทำงานบน https)

ใช้ Microsoft.AspNetCore.Builder;
ใช้ Microsoft.AspNetCore.Hosting;
ใช้ Microsoft.AspNetCore.Http;
ใช้ Microsoft.AspNetCore.HttpOverrides;
ใช้ Microsoft.Extensions.DependencyInjection;
ใช้ Microsoft.Extensions.Hosting;
ใช้ระบบ;
ใช้ System.Collections.Generic;
ใช้ System.Linq;
ใช้ System.Threading.Tasks;

เนมสเปซ api.limitlesssoft.com
{
    การเริ่มต้นระดับสาธารณะ
    {
        // วิธีการนี้ถูกเรียกใช้โดยรันไทม์ ใช้วิธีนี้เพื่อเพิ่มบริการไปยังคอนเทนเนอร์
        // สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีกำหนดค่าแอปพลิเคชันของคุณ โปรดไปที่ https://go.microsoft.com/fwlink/?LinkID=398940
        โมฆะสาธารณะ ConfigureServices (บริการ IServiceCollection)
        {
            services.AddControllers();
            services.Configure<ForwardedHeadersOptions>(ตัวเลือก =>
            {
                option.ForwardedHeaders =
                    ForwardedHeaders.Xส่งต่อสำหรับ | ForwardedHeaders.XForwardedProto;
            });
        }

        // วิธีการนี้ถูกเรียกใช้โดยรันไทม์ ใช้วิธีนี้เพื่อกำหนดค่าไปป์ไลน์คำขอ HTTP
        โมฆะสาธารณะกำหนดค่า (แอป IapplicationBuilder, IWebHostEnvironment env)
        {
            ถ้า (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseForwardedHeaders();

            app.UseHttpsRedirection();

            app.UseStaticFiles();

            app.UseRouting();

            app.UseEndpoints(จุดสิ้นสุด =>
            {
                จุดสิ้นสุด MapControllers();
            });
        }
    }
}
Michael Hampton avatar
cz flag
api.limitlesssoft.com หมดเวลาบนพอร์ต 443 แต่ใช้งานได้กับพอร์ต 80 คุณตรวจสอบไฟร์วอลล์ของคุณหรือไม่?
Aleksa Ristic avatar
ch flag
@MichaelHampton คุณหมายถึงอะไร?
Aleksa Ristic avatar
ch flag
ฉันเพิ่มผลลัพธ์ `netstat -a -n` และอย่างที่ฉันเห็นมีพอร์ต 443
Aleksa Ristic avatar
ch flag
Btw `ufw` ถูกปิดใช้งาน
Aleksa Ristic avatar
ch flag
ฉันเปิดใช้งาน ufw และยังใช้งานไม่ได้ (ดูผลลัพธ์ในคำถามที่แก้ไข)
Score:0
ธง ch

พบวิธีแก้ปัญหาใน การเชื่อมต่อปฏิเสธ HTTPS บน Apache และมีเครื่องหมายว่า -1 จุด .... ปัญหาอยู่ในการกำหนดเส้นทาง ... การส่งต่อพอร์ตไม่ได้ส่งต่อพอร์ต 443 เพียง 80 นั่นคือสาเหตุที่มันไม่ทำงาน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา