1. มีสองบล็อกเซิร์ฟเวอร์

  2. default_serverบล็อกภายในhttpบล็อกของnginx.conf:

server {
   server_name _;
   listen 80 default_server;
   listen [::]:80 default_server ipv6only=on;
   listen 443 default_server;
   return 404;
}
include /etc/nginx/sites-enabled/*;
  1. โดเมน/บล็อกเว็บไซต์ที่ใช้งานได้ภายในsites-enabled:
server {
  listen 80;
  listen 443;
  server_name example.com;
  return 301 https://www.$server_name$request_uri;
}

server {
  listen 80;
  listen 443 ssl;
  root /var/www/example.com/htdocs/;
  index index.html index.htm;

  server_name www.example.com;
}

(ฉันมีการตั้งค่านี้เพื่อเปลี่ยนเส้นทางที่ไม่ใช่ www ทั้งหมดไปยัง www และ http ทั้งหมดเป็น https)

  1. ฉันมีใบรับรองทั้งแบบไม่มี www และ www สำหรับโดเมนของฉัน Nginx ด้วยเหตุผลบางอย่างกำลังเรียกโดเมนย่อยใด ๆ แทนที่จะให้เว็บไซต์เริ่มต้นไม่พบ / ERR_CONNECTION_RESET/ข้อผิดพลาด

  2. ตัวอย่างเช่น ถ้าฉันไปที่https://asdf.example.com/Nginx เรียกมันว่าและเบราว์เซอร์บอกคุณว่าเป็นใบรับรอง SSL ที่ไม่ปลอดภัย คุณก็ยอมรับมันและรับหน้า 404

  3. ฉันจะข้ามไปยังหน้า 404 โดยข้ามข้อความรับรองที่ไม่ถูกต้องได้อย่างไร หรือฉันจะข้ามไปที่ 'ไม่พบหน้า' ไม่ใช่ 404 ได้อย่างไร เช่น go to https://asdf.serverfault.comit ไม่ให้ 404 มันให้ERR_CONNECTION_RESET/. ฉันต้องการสิ่งนั้นสำหรับโดเมนย่อยและโดเมนที่ไม่มีอยู่บนเซิร์ฟเวอร์ของฉัน

อัปเดต:เป็นไปได้ไหมที่ssl_certificateบรรทัดทั้งหมดของฉันถูกเพิ่มลงในบล็อก http หลักด้วย หากเป็นเช่นนั้น ยังคงไม่สามารถแก้ปัญหาการโทรERR_CONNECTION_RESETและไม่ใช่ 404 เหมือนตัวอย่างใน6..

answer

หากคุณเปิดhttps://asdf.example.comโดยตรง เบราว์เซอร์จะแก้ไขasdf.example.comเป็นที่อยู่ IP แล้วเชื่อมต่อโดยใช้HTTPSโปรโตคอล หากเซิร์ฟเวอร์ (ที่มี IP ที่ดึงมา) กำลังฟัง443พอร์ตและไม่ส่งคืนใบรับรองสำหรับโดเมนนี้ หรือใบรับรองที่ไม่ถูกต้องจากเบราว์เซอร์จะเตือนคุณเกี่ยวกับโปรโตคอลที่ไม่ปลอดภัยก่อนที่จะดำเนินการตามคำขอ (เช่น แสดง404ข้อผิดพลาด)

https://asdf.serverfault.comให้ข้อผิดพลาดในการเชื่อมต่อเนื่องจากไม่ได้ลงทะเบียนโดเมนย่อยนี้ แต่ไม่มีที่อยู่ IP นั่นเป็นสาเหตุที่คุณเห็นข้อผิดพลาดนี้ หากคุณต้องการให้แน่ใจว่าasdf.example.comส่งคืนข้อผิดพลาดในการเชื่อมต่อแทนการเตือน SSL ตรวจสอบให้แน่ใจว่าโดเมนย่อยนี้ไม่ได้ลงทะเบียนและไม่มีเรคคอร์ดไวด์การ์ด (*) สำหรับexample.com.