Score:0

Mailcow SSL ไม่ทำงาน

ธง cn

การใช้ Apache/mailcow ฉันกำลังตั้งค่าเซิร์ฟเวอร์อีเมลที่บ้าน ฉันทำตามบทแนะนำการเทียบท่าของ mailcow และสามารถเชื่อมต่อกับไซต์ mailcow ของฉันได้ที่:

http://mail.example.com:8080

ฉันต้องใช้ 8080 เพราะฉันมีการตั้งค่าเว็บไซต์ของฉันบนเซิร์ฟเวอร์นี้ด้วย

ฉันพบปัญหาในการพยายามเชื่อมต่อไคลเอนต์ nextcloud กับเซิร์ฟเวอร์อีเมลของฉัน คิดว่าเป็นปัญหาเกี่ยวกับ SSL ในที่สุดฉันก็ติดตั้ง ssl โดยใช้ certbot

ฉันมีบทเรียนบอกให้ฉันสร้างทั้งไฟล์ redirect.conf และ site.conf

ตอนนี้ฉันไม่สามารถเข้าถึงไซต์อีเมลของฉันจาก URL ใดๆ ด้านล่างได้

Mail.example.com
Mail.example.com:8080 หรือ 8443
http://mail.example.com
https://mail.example.com
http(s)://mail.example.com:8080 หรือ 8443

ฉันรู้ว่าสิ่งนี้เกี่ยวข้องกับการเขียนซ้ำหรือ “พร็อกซี” หรือ “ย้อนกลับพร็อกซี” แต่ฉันไม่รู้จริงๆ ว่าหมายความว่าอย่างไร จึงไม่รู้ว่าต้องตรวจสอบอะไร .

ฉันไม่รู้ว่า Apache รู้ได้อย่างไรว่าต้องส่งอะไรไปที่ไหน เนื่องจากค่า documentroot ไม่ได้อยู่ในการกำหนดค่า ฉันไม่รู้ว่าไฟล์เปลี่ยนเส้นทางหรือไฟล์กำหนดค่าไซต์มีไว้เพื่ออะไร

ฉันพลาดอะไรไป เหตุใดฉันจึงเข้าเว็บไซต์ผ่าน mail.example.com แบบธรรมดาไม่ได้ สุดท้ายนี้ ฉันต้องการให้ URL ข้างต้นทั้งหมดไป/ถูกเขียนใหม่ไปยังไซต์ ssl secure mail.example.com ไม่ใช่ :8080 หรือ :8443

ไฟล์โฮสต์เสมือน

<VirtualHost *:80>
  ServerName mail.example.com
  ServerAlias autodiscover.*
  ServerAlias autoconfig.*
  RewriteEngine on

  ProxyPass / http://mail.example.com:8080/
  ProxyPassReverse / http://mail.example.com:8080/

  RewriteCond %{HTTPS} off
  RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R=301,L]

</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
  ServerName mail.example.com
  ServerAlias autodiscover.*
  ServerAlias autoconfig.*

  # You should proxy to a plain HTTP session to offload SSL processing
  #ProxyPass /Microsoft-Server-ActiveSync http://127.0.0.1:8080/Microsoft-Server-ActiveSync connectiontim>
  #ProxyPassReverse /Microsoft-Server-ActiveSync http://127.0.0.1:8080/Microsoft-Server-ActiveSync
  ProxyPass / http://mail.example.com:8080/
  ProxyPassReverse / http://mail.example.com:8080/
  ProxyPreserveHost On
  ProxyAddHeaders On
  RequestHeader set X-Forwarded-Proto “https”

  Include /etc/letsencrypt/options-ssl-apache.conf

  SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem

  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

  # If you plan to proxy to a HTTPS host:
  #SSLProxyEngine On

  # If you plan to proxy to an untrusted HTTPS host:
  #SSLProxyVerify none
  #SSLProxyCheckPeerCN off
  #SSLProxyCheckPeerName off
  #SSLProxyCheckPeerExpire off
</VirtualHost>
</IfModule>

Mailcow.conf

#--------------------------------
# การกำหนดค่า UI ของเว็บ mailcow
#--------------------------------
# example.org คือ _not_ ชื่อโฮสต์ที่ถูกต้อง ใช้ fqdn ที่นี่
# ผู้ดูแลระบบเริ่มต้นคือ âadminâ
# รหัสผ่านเริ่มต้นคือ âmoohooâ

MAILCOW_HOSTNAME=mail.example.com

# อัลกอริทึมแฮชรหัสผ่าน
# รองรับเฉพาะอัลกอริทึมแฮชรหัสผ่านบางตัวเท่านั้น สำหรับรายการโครงร่างที่รองรับทั้งหมด
# ดู https://mailcow.github.io/mailcow-dockerized-docs/model-passwd/
MAILCOW_PASS_SCHEME=BLF-CRYPT

#--------------------------------
# การกำหนดค่าฐานข้อมูล SQL
#--------------------------------

DBNAME=ตัวอย่าง
DBUSER=ตัวอย่าง

# โปรดใช้สตริงตัวอักษรและตัวเลขแบบสุ่ม (A-Za-z0-9)

DBPASS=*************
DBROOT=*************

#--------------------------------
# การโยง HTTP/S
#--------------------------------

# คุณควรใช้ HTTPS แต่ในกรณีของ SSL offloaded reverse proxies:
# อาจสำคัญ: สิ่งนี้จะเปลี่ยนการผูกภายในคอนเทนเนอร์ด้วย
# หากคุณใช้พร็อกซีภายใน Docker ให้ชี้ไปที่พอร์ตที่คุณตั้งค่าด้านล่าง
# ห้าม _not_ ใช้ IP:PORT ใน HTTP(S)_BIND หรือ HTTP(S)_PORT
# สำคัญ: อย่าใช้พอร์ต 8081, 9081 หรือ 65510!
# ตัวอย่าง: HTTP_BIND=1.2.3.4
# สำหรับ IPv4 และ IPv6 เว้นว่างไว้: HTTP_BIND= & HTTPS_PORT=
# สำหรับ IPv6 โปรดดู https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ip_bindings/

HTTP_PORT=8080
HTTP_BIND=

HTTPS_PORT=8443
HTTPS_BIND=

#--------------------------------
#ข้อต่ออื่นๆ
#--------------------------------
#ควรปล่อยวาง
# รูปแบบ: 11.22.33.44:25 หรือ 12.34.56.78:465 เป็นต้น

SMTP_PORT=25
SMTP_PORT=465
SUBMISSION_PORT=587
IMAP_PORT=143
IMAPS_PORT=993
POP_PORT=110
POPS_PORT=995
SIEVE_PORT=4190
DOVEADM_PORT=127.0.0.1:19991
SQL_PORT=127.0.0.1:13306
SOLR_PORT=127.0.0.1:18983
REDIS_PORT=127.0.0.1:7654

# เขตเวลาของคุณ
# ดู https://en.wikipedia.org/wiki/List_of_tz_database_time_zones สำหรับรายการเขตเวลา
# ใช้แถวชื่อ âTZ ชื่อฐานข้อมูลâ + ให้ความสนใจสำหรับแถว âNotesâ

TZ=****

#แก้ไขชื่อโครงการ
#กรุณาใช้ตัวพิมพ์เล็กเท่านั้น

COMPOSE_PROJECT_NAME=mailcowdockerized

# ตั้งค่านี้เป็น âallowâ เพื่อเปิดใช้งานผู้ใช้หลอกทุกคน ปิดใช้งานโดยค่าเริ่มต้น
# เมื่อเปิดใช้งาน สามารถสร้าง ACL ซึ่งใช้กับ âผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์ทั้งหมดâ
# สิ่งนี้น่าจะเปิดใช้งานบนโฮสต์เมลเท่านั้น ซึ่งใช้งานโดยองค์กรเดียวเท่านั้น
# มิฉะนั้นผู้ใช้อาจแบ่งปันข้อมูลกับผู้ใช้รายอื่นมากเกินไป
ACL_ANYONE=ไม่อนุญาต

#พนักงานเก็บขยะทำความสะอาด
# โดเมนและกล่องจดหมายที่ถูกลบจะถูกย้ายไปยัง /var/vmail/_garbage/timestamp_sanitizedstring
# วัตถุควรอยู่ในถังขยะนานเท่าใดจนกว่าจะถูกลบ (ค่าเป็นนาที)
# ช่วงเวลาตรวจสอบเป็นรายชั่วโมง

MAILDIR_GC_TIME=7200

# SAN เพิ่มเติมสำหรับใบรับรอง
#
# คุณสามารถใช้บันทึกตัวแทนเพื่อสร้างชื่อเฉพาะสำหรับทุกโดเมนที่คุณเพิ่มใน mailcow
# ตัวอย่าง: เพิ่มโดเมน âexample.comâ และ âexample.netâ ไปยัง mailcow เปลี่ยน ADDITIONAL_SAN เป็นค่าเช่น:
#ADDITIONAL_SAN=imap.*,smtp.*
# ซึ่งจะขยายใบรับรองเป็น âimap.example.comâ, âsmtp.example.comâ, âimap.example.netâ, âimap.example.netâ
# บวกทุกโดเมนที่คุณเพิ่มในอนาคต
#
# คุณยังสามารถเพิ่มชื่อคงที่ได้อีกด้วย
#ADDITIONAL_SAN=srv1.example.net
# â¦หรือรวมสัญลักษณ์ตัวแทนและชื่อคงที่:
#ADDITIONAL_SAN=imap.*,srv1.example.com
#

ADDITIONAL_SAN=

# ชื่อเซิร์ฟเวอร์เพิ่มเติมสำหรับ mailcow UI
#
# ระบุที่อยู่อื่นสำหรับ mailcow UI เพื่อตอบกลับ
# สิ่งนี้มีประโยชน์เมื่อคุณตั้งค่า mail.* เป็น ADDITIONAL_SAN และต้องการให้แน่ใจว่า mail.maildomain.com จะชี้ไปที่ mailcow UI เสมอ
# หากชื่อเซิร์ฟเวอร์ไม่ตรงกับไซต์ที่รู้จัก Nginx จะตัดสินใจโดยการเดาที่ดีที่สุดและอาจเปลี่ยนเส้นทางผู้ใช้ไปยังรูทเว็บที่ไม่ถูกต้อง
# คุณสามารถเข้าใจสิ่งนี้ได้ว่าเป็นคำสั่ง server_name ใน Nginx
# รายการคั่นด้วยเครื่องหมายจุลภาคโดยไม่มีช่องว่าง! ตัวอย่าง: ADDITIONAL_SERVER_NAMES=a.b.c,d.e.f

ADDITIONAL_SERVER_NAMES=

# ข้ามการทำงาน ACME (acme-mailcow, Letâs Encrypt certs) â y/n

SKIP_LETS_ENCRYPT=ย

# สร้างใบรับรองแยกต่างหากสำหรับทุกโดเมน â y/n
# สิ่งนี้จะอนุญาตให้เพิ่มมากกว่า 100 โดเมน แต่ไคลเอนต์อีเมลบางตัวจะไม่สามารถเชื่อมต่อกับชื่อโฮสต์อื่นได้
# ดู https://wiki.dovecot.org/SSL/SNIClientSupport
ENABLE_SSL_SNI=y

# ข้ามการตรวจสอบ IPv4 ในคอนเทนเนอร์ ACME â y/n

SKIP_IP_CHECK=น

# ข้ามการยืนยัน HTTP ในคอนเทนเนอร์ ACME â y/n

SKIP_HTTP_VERIFICATION=n

# ข้ามโปรแกรมป้องกันไวรัส ClamAV (clamd-mailcow) (Rspamd จะตรวจหาคอนเทนเนอร์ ClamAV ที่หายไปโดยอัตโนมัติ) â y/n

SKIP_CLAMD=น

# ข้าม SOGo: จะปิดใช้งานการผสานรวม SOGo และด้วยเหตุนี้เว็บเมล โปรโตคอล DAV และการสนับสนุน ActiveSync (ทดลอง ไม่สนับสนุน ไม่ได้ใช้งานอย่างสมบูรณ์) â y/n

SKIP_SOGO=n

# ข้าม Solr ในระบบหน่วยความจำต่ำหรือหากคุณไม่ต้องการจัดเก็บดัชนีอีเมลที่อ่านได้ของคุณใน solr-vol-1

SKIP_SOLR=n

# ขนาดฮีป Solr เป็น MB ไม่มีคำแนะนำ โปรดดูเอกสาร Solr
# Solr มีแนวโน้มที่จะเรียกใช้ OOM และควรได้รับการตรวจสอบ ไม่แนะนำให้ตั้งค่า Solr ที่ไม่ได้ตรวจสอบ

SOLR_HEAP=1024

# อนุญาตให้ผู้ดูแลระบบเข้าสู่ระบบ SOGo ในฐานะผู้ใช้อีเมล (โดยไม่ต้องใช้รหัสผ่าน)

ALLOW_ADMIN_EMAIL_LOGIN=n

# เปิดใช้งาน watchdog (watchdog-mailcow) เพื่อรีสตาร์ทคอนเทนเนอร์ที่ไม่แข็งแรง

USE_WATCHDOG=ย

# ส่งการแจ้งเตือนสุนัขเฝ้าบ้านทางไปรษณีย์ (ส่งจาก watchdog@MAILCOW_HOSTNAME)
# คำเตือน:
# 1 คุณควรใช้ผู้รับภายนอก
# 2. จดหมายถูกส่งโดยไม่ได้ลงชื่อ (ไม่มี DKIM)
# 3 หากคุณใช้ DMARC ให้สร้างนโยบาย DMARC แยกต่างหาก (âv=DMARC1; p=none;â ใน _dmarc.MAILCOW_HOSTNAME)
# อนุญาตให้ใช้ rcpts หลายรายการ ไม่มีเครื่องหมายอัญประกาศ ไม่มีช่องว่าง

#[email protected],[email protected],[email protected]
#WATCHDOG_NOTIFY_EMAIL=

# แจ้งเตือนเกี่ยวกับ IP ที่ถูกแบน (รวมถึงการค้นหา whois)
WATCHDOG_NOTIFY_BAN=ไม่มี

# หัวเรื่องสำหรับจดหมายเฝ้าบ้าน ค่าเริ่มต้นคือ âWatchdog ALERTâ ตามด้วยข้อความแสดงข้อผิดพลาด
#WATCHDOG_SUBJECT=

# ตรวจสอบว่า mailcow เป็นรีเลย์เปิดหรือไม่ ต้องมี SAL การตรวจสอบเพิ่มเติมจะตามมา
# https://www.servercow.de/mailcow?lang=th
# https://www.servercow.de/mailcow?lang=de
#ไม่มีการเก็บข้อมูล เลือกใช้และไม่ระบุตัวตน
# จะใช้งานได้กับการตั้งค่า mailcow ที่ไม่ได้แก้ไขเท่านั้น
WATCHDOG_EXTERNAL_CHECKS=n

# เปิดใช้งานการบันทึกข้อมูลอย่างละเอียดของ watchdog
WATCHDOG_VERBOSE=n

# บรรทัดบันทึกสูงสุดต่อบริการเพื่อเก็บไว้ในบันทึก Redis

LOG_LINES=9999

# ซับเน็ตภายใน IPv4 /24 รูปแบบ n.n.n (ขยายเป็น n.n.n.0/24)
# ใช้ที่อยู่ IPv4 ส่วนตัวเท่านั้น ดู https://en.wikipedia.org/wiki/Private_network#Private_IPv4_addresses

IPV4_NETWORK=172.22.1

# ซับเน็ต IPv6 ภายในใน fc00::/7
# ใช้ที่อยู่ IPv6 ส่วนตัวเท่านั้น ดู https://en.wikipedia.org/wiki/Private_network#Private_IPv6_addresses

IPV6_NETWORK=fd4d:6169:6c63:6f77::/64

# ใช้ IPv4 นี้สำหรับการเชื่อมต่อขาออก (SNAT)

#SNAT_TO_SOURCE=

# ใช้ IPv6 นี้สำหรับการเชื่อมต่อขาออก (SNAT)

#SNAT6_TO_SOURCE=

# สร้างหรือแทนที่คีย์ API สำหรับเว็บ UI
# คุณ _must_ กำหนด API_ALLOW_FROM ซึ่งเป็นรายการ IP ที่คั่นด้วยเครื่องหมายจุลภาค
# คีย์ API ที่กำหนดเป็น API_KEY มีการเข้าถึงแบบอ่าน-เขียน
# คีย์ API ที่กำหนดเป็น API_KEY_READ_ONLY มีการเข้าถึงแบบอ่านอย่างเดียว
# ตัวอักษรที่อนุญาตสำหรับ API_KEY และ API_KEY_READ_ONLY: a-z, A-Z, 0-9, -
# คุณสามารถกำหนด API_KEY และ/หรือ API_KEY_READ_ONLY

#API_KEY=
#API_KEY_READ_ONLY=
#API_ALLOW_FROM=172.22.1.1,127.0.0.1

# mail_home คือ ~/Maildir
MAILDIR_SUB=เมลเดียร์

# หมดเวลาเซสชัน SOGo ในไม่กี่นาที
SOGO_EXPIRE_SESSION=480

# ต้องระบุทั้ง DOVECOT_MASTER_USER และ DOVECOT_MASTER_PASS ไม่มีอักขระพิเศษ
# ว่างเปล่าโดยค่าเริ่มต้นเพื่อสร้างผู้ใช้หลักและรหัสผ่านโดยอัตโนมัติเมื่อเริ่มต้น
# ผู้ใช้ขยายเป็น [email protected]
# เว้นว่างไว้หากไม่แน่ใจ
DOVECOT_MASTER_USER=
# เว้นว่างไว้หากไม่แน่ใจ
DOVECOT_MASTER_PASS=

# Letâs Encrypt ข้อมูลติดต่อการลงทะเบียน
# ทางเลือก: เว้นว่างไว้สำหรับไม่มี
#ราคานี้เฉพาะการสั่งซื้อครั้งแรกเท่านั้น!
# การตั้งค่าในภายหลังจะต้องมีขั้นตอนต่อไปนี้:
# https://mailcow.github.io/mailcow-dockerized-docs/debug-reset_tls/
ACME_CONTACT=

# การตรวจสอบผู้ผลิตอุปกรณ์ WebAuthn
# หลังจากตั้งค่า WEBAUTHN_ONLY_TRUSTED_VENDORS=y อนุญาตเฉพาะอุปกรณ์จากผู้ผลิตที่เชื่อถือได้เท่านั้น
# ใบรับรองหลักสามารถวางสำหรับการตรวจสอบภายใต้ mailcow-dockerized/data/web/inc/lib/WebAuthn/rootCertificates
WEBAUTHN_ONLY_TRUSTED_VENDORS=n

ไซต์.conf

เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ฟัง [::]:80 default_server;
รวม /etc/nginx/conf.d/server_name.active;
ถ้า ( $request_uri ~* â%0A|%0Dâ ) { กลับ 403; }
ส่งคืน 301 https://$host$uri$is_args$args;
}

เปลี่ยนเส้นทาง.conf

    เซิร์ฟเวอร์ {
  ราก / เว็บ;
  ฟัง 80 default_server;
  ฟัง [::]:80 default_server;
  รวม /etc/nginx/conf.d/server_name.active;
  ถ้า ( $request_uri ~* â%0A|%0Dâ ) { กลับ 403; }
  ที่ตั้ง ^~ /.well-known/acme-challenge/ {
    อนุญาตทั้งหมด
    Default_type âข้อความ/ธรรมดาâ;
  }
  ที่ตั้ง / {
    ส่งคืน 301 https://$host$uri$is_args$args;
  }
}
user3779539 avatar
cn flag
โพสต์ใหม่จาก Stack Overflow
in flag
และปิดหัวข้อที่นี่เช่นกัน เสียใจ.
user3779539 avatar
cn flag
คุณช่วยฉันคิดหน่อยได้ไหมว่านี่เป็นหัวข้อนอกประเด็นได้อย่างไร ฉันไม่สามารถถามคำถามเกี่ยวกับโค้ดของฉันใน stack Overflow ได้เนื่องจากเกี่ยวข้องกับเซิร์ฟเวอร์ แม้ว่านั่นจะเป็นคำถามอื่นๆ เกี่ยวกับหัวข้อที่คล้ายกันนี้ก็ตาม ถามคำถามที่นี่ไม่ได้เพราะนอกเรื่อง? นอกประเด็นเกี่ยวกับเรื่องนี้คืออะไร? มันเป็นเซิร์ฟเวอร์? ฉันไม่รู้ด้วยซ้ำว่าฉันไม่รู้อะไร และแทนที่จะได้รับความช่วยเหลือกลับถูกบอกว่าฉันไม่สามารถขอความช่วยเหลือได้?
in flag
คุณสามารถถามคำถามเกี่ยวกับการตั้งค่าบ้านของคุณได้ที่ [su] หรือ [unix.se]
djdomi avatar
za flag
ฉันแนะนำให้คุณเข้าร่วม https://t.me/mailcow ทางโทรเลข เนื่องจาก tgis เป็นช่องทางการสนับสนุนอย่างเป็นทางการสำหรับ mailcow

โพสต์คำตอบ

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