Điểm:0

Mailcow SSL không hoạt động

lá cờ cn

Sử dụng Apache/mailcow Tôi đang thiết lập một máy chủ email gia đình. Tôi đã làm theo hướng dẫn dockerized của mailcow. Và đã có thể kết nối với trang web mailcow của tôi tại:

http://mail.example.com:8080

Tôi đã phải sử dụng 8080, vì trang web của tôi cũng được thiết lập trên máy chủ này.

Tôi gặp sự cố khi cố gắng kết nối ứng dụng khách nextcloud của mình với máy chủ thư của mình, tôi nghĩ rằng đó là sự cố với SSL. Vì vậy, cuối cùng tôi đã cài đặt ssl bằng certbot.

Tôi đã có hướng dẫn bảo tôi tạo cả tệp redirect.conf và site.conf.

Bây giờ tôi không thể truy cập trang web thư của mình từ bất kỳ url nào bên dưới.

Mail.example.com
Mail.example.com:8080 hoặc 8443
http://mail.example.com
https://mail.example.com
http(s)://mail.example.com:8080 hoặc 8443

Tôi biết điều này có liên quan đến việc viết lại hoặc âproxyâ hoặc âreverse proxyâ nhưng tôi thực sự không biết điều đó có nghĩa là gì nên tôi không biết phải kiểm tra điều gì .

Tôi không biết làm thế nào Apache biết nơi gửi bất kỳ thứ gì vì giá trị documentroot không có trong cấu hình. Tôi không biết tệp chuyển hướng hoặc tệp cấu hình trang web dùng để làm gì.

Tôi đang thiếu gì? Tại sao tôi không thể truy cập trang web của mình thông qua mail.example.com đơn giản. Cuối cùng, tôi muốn tất cả các url ở trên được chuyển đến/được ghi lại vào trang web mail.example.com bảo mật ssl. Không, :8080 hoặc :8443

Tệp máy chủ ảo

<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

# ------------------------------
# cấu hình giao diện người dùng web mailcow
# ------------------------------
# example.org _không_ phải là tên máy chủ hợp lệ, hãy sử dụng fqdn tại đây.
# Người dùng quản trị mặc định là âadminâ
# Mật khẩu mặc định là âmoohooâ

MAILCOW_HOSTNAME=mail.example.com

# Thuật toán băm mật khẩu
# Chỉ hỗ trợ thuật toán băm mật khẩu nhất định. Để biết danh sách đầy đủ các chương trình được hỗ trợ,
# xem https://mailcow.github.io/mailcow-dockerized-docs/model-passwd/
MAILCOW_PASS_SCHEME=BLF-CRYPT

# ------------------------------
# Cấu hình cơ sở dữ liệu SQL
# ------------------------------

DBNAME=ví dụ
DBUSER=ví dụ

# Vui lòng sử dụng các chuỗi chữ và số ngẫu nhiên dài (A-Za-z0-9)

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

# ------------------------------
# Ràng buộc HTTP/S
# ------------------------------

# Bạn nên sử dụng HTTPS, nhưng trong trường hợp proxy ngược bị giảm tải SSL:
# Có thể quan trọng: Điều này cũng sẽ thay đổi ràng buộc trong vùng chứa.
# Nếu bạn sử dụng proxy trong Docker, hãy trỏ nó đến các cổng bạn đã đặt bên dưới.
# Không _không_ sử dụng IP:PORT trong HTTP(S)_BIND hoặc HTTP(S)_PORT
# QUAN TRỌNG: Không sử dụng cổng 8081, 9081 hoặc 65510!
# Ví dụ: HTTP_BIND=1.2.3.4
# Đối với IPv4 và IPv6 để trống: HTTP_BIND= & HTTPS_PORT=
# Đối với IPv6, hãy xem https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ip_bindings/

HTTP_PORT=8080
HTTP_BIND=

HTTPS_PORT=8443
HTTPS_BIND=

# ------------------------------
# Các ràng buộc khác
# ------------------------------
# Bạn nên để điều đó một mình
# Định dạng: 11.22.33.44:25 hoặc 12.34.56.78:465, v.v.

SMTP_PORT=25
SMTPS_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

# Múi giờ của bạn
# Xem https://en.wikipedia.org/wiki/List_of_tz_database_time_zones để biết danh sách các múi giờ
# Sử dụng hàng có tên âTZ database nameâ + chú ý cho hàng âNotesâ

TZ=****

# Đã sửa tên dự án
# Vui lòng chỉ sử dụng chữ thường

COMPOSE_PROJECT_NAME=mailcowdockerized

# Đặt tùy chọn này thành âallowâ để bật bất kỳ người dùng giả nào. Bị tắt theo mặc định.
# Khi được bật, ACL có thể được tạo, áp dụng cho âTất cả người dùng được xác thực
# Điều này có lẽ chỉ nên được kích hoạt trên máy chủ thư, được sử dụng độc quyền bởi một tổ chức.
# Nếu không, một người dùng có thể chia sẻ dữ liệu với quá nhiều người dùng khác.
ACL_ANYONE=không cho phép

# Dọn rác thu gom
# Các miền và hộp thư đã xóa được chuyển đến /var/vmail/_garbage/timestamp_sanitizedstring
# Các đối tượng sẽ ở trong thùng rác bao lâu cho đến khi chúng bị xóa? (giá trị tính bằng phút)
# Khoảng thời gian kiểm tra là hàng giờ

MAILDIR_GC_TIME=7200

# SAN bổ sung cho chứng chỉ
#
# Bạn có thể sử dụng bản ghi ký tự đại diện để tạo tên cụ thể cho mọi tên miền mà bạn thêm vào mailcow.
# Ví dụ: Thêm tên miền âexample.comâ và âexample.netâ vào mailcow, thay đổi ADDITIONAL_SAN thành giá trị như:
#ADDITIONAL_SAN=imap.*,smtp.*
# Thao tác này sẽ mở rộng chứng chỉ thành âimap.example.comâ, âsmtp.example.comâ, âimap.example.netâ, âimap.example.netâ
# cộng với mọi miền bạn thêm trong tương lai.
#
# Bạn cũng có thể chỉ cần thêm tên tĩnhâ¦
#ADDITIONAL_SAN=srv1.example.net
# â¦hoặc kết hợp ký tự đại diện và tên tĩnh:
#ADDITIONAL_SAN=imap.*,srv1.example.com
#

BỔ SUNG_SAN=

# Tên máy chủ bổ sung cho giao diện người dùng mailcow
#
# Chỉ định địa chỉ thay thế cho giao diện người dùng mailcow để phản hồi
# Điều này hữu ích khi bạn đặt mail.* là ADDITIONAL_SAN và muốn đảm bảo rằng mail.maildomain.com sẽ luôn trỏ đến giao diện người dùng mailcow.
# Nếu tên máy chủ không khớp với một trang web đã biết, Nginx sẽ quyết định theo cách đoán tốt nhất và có thể chuyển hướng người dùng đến gốc web sai.
# Bạn có thể hiểu đây là chỉ thị server_name trong Nginx.
# Danh sách được phân tách bằng dấu phẩy không có dấu cách! Ví dụ: ADDITIONAL_SERVER_NAMES=a.b.c,d.e.f

BỔ SUNG_SERVER_NAMES=

# Bỏ qua việc chạy ACME (acme-mailcow, Letâs Encrypt certs) â y/n

SKIP_LETS_ENCRYPT=y

# Tạo chứng chỉ riêng cho tất cả các miền â y/n
# điều này sẽ cho phép thêm hơn 100 tên miền, nhưng một số ứng dụng email sẽ không thể kết nối với tên máy chủ thay thế
# xem https://wiki.dovecot.org/SSL/SNIClientSupport
ENABLE_SSL_SNI=y

# Bỏ qua kiểm tra IPv4 trong bộ chứa ACME â y/n

SKIP_IP_CHECK=n

# Bỏ qua xác minh HTTP trong bộ chứa ACME â y/n

SKIP_HTTP_VERIFICATION=n

# Bỏ qua chương trình chống vi-rút ClamAV (clamd-mailcow) (Rspamd sẽ tự động phát hiện vùng chứa ClamAV bị thiếu) â y/n

SKIP_CLAMD=n

# Bỏ qua SOGo: Sẽ vô hiệu hóa tích hợp SOGo và do đó, webmail, giao thức DAV và hỗ trợ ActiveSync (thử nghiệm, không được hỗ trợ, không được triển khai đầy đủ) â y/n

SKIP_SOGO=n

# Bỏ qua Solr trên các hệ thống có bộ nhớ thấp hoặc nếu bạn không muốn lưu trữ chỉ mục thư có thể đọc được của mình trong solr-vol-1.

SKIP_SOLR=n

# Kích thước heap Solr tính bằng MB, không có đề xuất nào, vui lòng xem tài liệu Solr.
# Solr dễ chạy OOM và cần được theo dõi. Không nên thiết lập Solr không được giám sát.

SOLR_HEAP=1024

# Cho phép quản trị viên đăng nhập vào SOGo với tư cách người dùng email (không cần mật khẩu)

ALLOW_ADMIN_EMAIL_LOGIN=n

# Kích hoạt cơ quan giám sát (watchdog-mailcow) để khởi động lại các thùng chứa không lành mạnh

USE_WATCHDOG=y

# Gửi thông báo của cơ quan giám sát qua thư (gửi từ watchdog@MAILCOW_HOSTNAME)
# THẬN TRỌNG:
# 1. Bạn nên sử dụng người nhận bên ngoài
#2. Mail gửi không dấu (ko DKIM)
# 3. Nếu bạn sử dụng DMARC, hãy tạo chính sách DMARC riêng (âv=DMARC1; p=none;â trong _dmarc.MAILCOW_HOSTNAME)
# Cho phép nhiều rcpts, KHÔNG có dấu ngoặc kép, KHÔNG có dấu cách

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

# Thông báo về IP bị cấm (bao gồm tra cứu whois)
WATCHDOG_NOTIFY_BAN=n

# Chủ đề cho thư giám sát. Mặc định là âWatchdog ALERTâ theo sau là thông báo lỗi.
#WATCHDOG_SUBJECT=

# Kiểm tra xem mailcow có phải là rơle mở không. Yêu cầu một SAL. Nhiều kiểm tra sẽ làm theo.
# https://www.servercow.de/mailcow?lang=vi
# https://www.servercow.de/mailcow?lang=de
# Không có dữ liệu nào được thu thập. Chọn tham gia và ẩn danh.
# Sẽ chỉ hoạt động với các thiết lập mailcow chưa sửa đổi.
WATCHDOG_EXTERNAL_CHECKS=n

# Cho phép ghi nhật ký chi tiết của cơ quan giám sát
WATCHDOG_VERBOSE=n

# Số dòng nhật ký tối đa trên mỗi dịch vụ để lưu trong nhật ký Redis

LOG_LINES=9999

# Mạng con IPv4 /24 nội bộ, định dạng n.n.n (mở rộng thành n.n.n.0/24)
# Chỉ sử dụng địa chỉ IPv4 riêng tư, xem https://en.wikipedia.org/wiki/Private_network#Private_IPv4_addresses

IPV4_NETWORK=172.22.1

# Mạng con IPv6 nội bộ trong fc00::/7
# Chỉ sử dụng địa chỉ IPv6 riêng tư, xem https://en.wikipedia.org/wiki/Private_network#Private_IPv6_addresses

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

# Sử dụng IPv4 này cho các kết nối gửi đi (SNAT)

#SNAT_TO_SOURCE=

# Sử dụng IPv6 này cho các kết nối gửi đi (SNAT)

#SNAT6_TO_SOURCE=

# Tạo hoặc ghi đè khóa API cho giao diện người dùng web
# Bạn _must_ xác định API_ALLOW_FROM, đây là danh sách IP được phân tách bằng dấu phẩy
# Khóa API được xác định là API_KEY có quyền truy cập đọc-ghi
# Khóa API được xác định là API_KEY_READ_ONLY có quyền truy cập chỉ đọc
# Ký tự được phép cho API_KEY và API_KEY_READ_ONLY: a-z, A-Z, 0-9, -
# Bạn có thể xác định API_KEY và/hoặc API_KEY_READ_ONLY

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

# mail_home là ~/Maildir
MAILDIR_SUB=Maildir

# Thời gian chờ của phiên SOGo tính bằng phút
SOGO_EXPIRE_SESSION=480

Bạn phải cung cấp cả # DOVECOT_MASTER_USER và DOVECOT_MASTER_PASS. Không có ký tự đặc biệt.
# Làm trống theo mặc định để tự động tạo người dùng chính và mật khẩu khi bắt đầu.
# Người dùng mở rộng thành [email protected]
# ĐỂ TRỐNG NẾU KHÔNG CHẮC CHẮN
DOVECOT_MASTER_USER=
# ĐỂ TRỐNG NẾU KHÔNG CHẮC CHẮN
DOVECOT_MASTER_PASS=

# Letâs Encrypt thông tin liên hệ đăng ký
# Tùy chọn: Không để trống
# Giá trị này chỉ được sử dụng cho đơn hàng đầu tiên!
# Đặt nó sau này sẽ yêu cầu các bước sau:
# https://mailcow.github.io/mailcow-dockerized-docs/debug-reset_tls/
ACME_CONTACT=

# Xác minh nhà sản xuất thiết bị WebAuthn
# Sau khi cài đặt WEBAUTHN_ONLY_TRUSTED_VENDORS=y, chỉ các thiết bị từ nhà sản xuất đáng tin cậy mới được phép
# chứng chỉ gốc có thể được đặt để xác thực trong mailcow-dockerized/data/web/inc/lib/WebAuthn/rootCertificates
WEBAUTHN_ONLY_TRUSTED_VENDORS=n

Trang web.conf

Người phục vụ {
Nghe 80 default_server;
Nghe [::]:80 default_server;
Bao gồm /etc/nginx/conf.d/server_name.active;
Nếu ( $request_uri ~* â%0A|%0Dâ ) { return 403; }
Trả lại 301 https://$host$uri$is_args$args;
}

Chuyển hướng.conf

    Người phục vụ {
  Gốc/web;
  Nghe 80 default_server;
  Nghe [::]:80 default_server;
  Bao gồm /etc/nginx/conf.d/server_name.active;
  Nếu ( $request_uri ~* â%0A|%0Dâ ) { return 403; }
  Vị trí ^~ /.well-known/acme-challenge/ {
    Chấp nhận tất cả;
    Default_type âtext/plainâ;
  }
  Địa điểm / {
    Trả lại 301 https://$host$uri$is_args$args;
  }
}
user3779539 avatar
lá cờ cn
Đăng lại từ Stack Overflow.
lá cờ in
Và ngoài chủ đề ở đây là tốt. Xin lỗi.
user3779539 avatar
lá cờ cn
Bạn có thể giúp tôi tìm ra làm thế nào điều này là lạc đề? Tôi không thể đặt câu hỏi về mã của mình trên Stack Overflow vì nó liên quan đến máy chủ, mặc dù đó là nơi đặt câu hỏi khác về chủ đề tương tự này. Không thể đặt câu hỏi ở đây vì nó lạc đề? Có gì ngoài chủ đề về nó? Đó là một máy chủ? Tôi thậm chí không biết những gì tôi không biết, và thay vì được giúp đỡ, tôi được cho biết là tôi không thể yêu cầu giúp đỡ?
lá cờ in
Bạn có thể đặt câu hỏi về thiết lập nhà của mình trên [su] hoặc [unix.se]
djdomi avatar
lá cờ za
tôi khuyên bạn nên tham gia https://t.me/mailcow trên telegram vì tgis là kênh hỗ trợ chính thức cho mailcow

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.