ฉันกำลังพยายามติดตั้งใบรับรอง 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();
});
}
}
}