Tôi có chứng chỉ ký tự đại diện ssl (letsencrypt) chẳng hạn.de & *.example.com.
000-default.conf của tôi trông giống như:
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerName example.de
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Redirect permanent / https://example.de/
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
<VirtualHost *:80>
ServerName cloud.example.de
ServerAdmin [email protected]
DocumentRoot /var/www/cloud.example.de
Redirect permanent / https://cloud.example.de/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName dev.example.de
ServerAdmin [email protected]
DocumentRoot /var/www/dev.example.de
Redirect permanent / https://dev.example.de/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
mặc định-ssl.conf:
<IfModule mod_ssl.c>
<Máy chủ ảo *:443>
ServerName example.de
Công cụ SSL Bật
SSLCertificateFile /etc/letsencrypt/live/example.de/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.de/privkey.pem
Tài liệuRoot /var/www/html
Nhật ký lỗi ${APACHE_LOG_DIR}/error.log
Nhật ký tùy chỉnh ${APACHE_LOG_DIR}/access.log kết hợp
</Máy chủ ảo>
<Máy chủ ảo _default_:443>
Quản trị viên web ServerAdmin@localhost
Tài liệuRoot /var/www/html
# Các mức nhật ký có sẵn: theo dõi8, ..., theo dõi1, gỡ lỗi, thông tin, thông báo, cảnh báo,
# lỗi, chí mạng, cảnh báo, nổi lên.
# Cũng có thể cấu hình loglevel cho cụ thể
# mô-đun, ví dụ:
#LogLevel thông tin ssl:cảnh báo
Nhật ký lỗi ${APACHE_LOG_DIR}/error.log
Nhật ký tùy chỉnh ${APACHE_LOG_DIR}/access.log kết hợp
# Đối với hầu hết các tệp cấu hình từ conf-available/, đó là
# được bật hoặc tắt ở cấp độ toàn cầu, có thể
# bao gồm một dòng cho chỉ một máy chủ ảo cụ thể. ví dụ như
# dòng sau chỉ bật cấu hình CGI cho máy chủ này
# sau khi nó đã bị vô hiệu hóa trên toàn cầu với "a2disconf".
#Bao gồm conf-có sẵn/phục vụ-cgi-bin.conf
# Chuyển đổi công cụ SSL:
# Bật/Tắt SSL cho máy chủ ảo này.
Công cụ SSL bật
# Có thể tạo chứng chỉ tự ký (snakeoil) bằng cách cài đặt
# gói ssl-cert. Nhìn thấy
# /usr/share/doc/apache2/README.Debian.gz để biết thêm thông tin.
# Nếu cả khóa và chứng chỉ được lưu trữ trong cùng một tệp, thì chỉ
# Chỉ thị SSLCertificateFile là cần thiết.
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
# Chuỗi chứng chỉ máy chủ:
# Trỏ SSLCertificateChainFile vào một tệp chứa
# nối các chứng chỉ CA được mã hóa PEM tạo thành
# chuỗi chứng chỉ cho chứng chỉ máy chủ. Ngoài ra
# tệp được tham chiếu có thể giống với SSLCertificateFile
# khi chứng chỉ CA được thêm trực tiếp vào máy chủ
# giấy chứng nhận thuận tiện.
#SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt
# Cơ quan cấp chứng chỉ (CA):
# Đặt đường dẫn xác minh chứng chỉ CA nơi tìm CA
# chứng chỉ để xác thực ứng dụng khách hoặc một chứng chỉ khác
# tệp lớn chứa tất cả chúng (tệp phải được mã hóa PEM)
# Lưu ý: Bên trong SSLCACertificatePath, bạn cần có các liên kết băm
# để trỏ đến tệp chứng chỉ. Sử dụng được cung cấp
# Makefile để cập nhật các liên kết mã băm sau khi thay đổi.
#SSLCACertificatePath /etc/ssl/certs/
#SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt
# Danh sách thu hồi chứng chỉ (CRL):
# Đặt đường dẫn thu hồi CA nơi tìm CRL CA cho máy khách
# xác thực hoặc thay vào đó là một tệp lớn chứa tất cả
# trong số chúng (tệp phải được mã hóa PEM)
# Lưu ý: Bên trong SSLCARevocationPath, bạn cần có các liên kết băm
# để trỏ đến tệp chứng chỉ. Sử dụng được cung cấp
# Makefile để cập nhật các liên kết mã băm sau khi thay đổi.
#SSLCARevocationPath /etc/apache2/ssl.crl/
#SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl
# Xác thực ứng dụng khách (Loại):
# Loại và độ sâu xác minh chứng chỉ ứng dụng khách. Các loại là
# không, tùy chọn, yêu cầu và tùy chọn_no_ca. Độ sâu là một
# số chỉ định mức độ sâu để xác minh chứng chỉ
# chuỗi nhà phát hành trước khi quyết định chứng chỉ không hợp lệ.
#SSLVerifyClient yêu cầu
#SSLVerifyDepth 10
# Tùy chọn Công cụ SSL:
# Đặt các tùy chọn khác nhau cho công cụ SSL.
# o FakeBasicAuth:
# Dịch ứng dụng khách X.509 thành Ủy quyền cơ bản. Điều này có nghĩa rằng
# các phương thức Auth/DBMAuth tiêu chuẩn có thể được sử dụng để kiểm soát truy cập. Các
# tên người dùng là phiên bản `một dòng' của chứng chỉ X.509 của máy khách.
# Lưu ý rằng không có mật khẩu nào được lấy từ người dùng. Mọi mục nhập trong người dùng
# tệp cần có mật khẩu này: `xxj31ZMTZzkVA'.
# o XuấtCertData:
# Điều này xuất hai biến môi trường bổ sung: SSL_CLIENT_CERT và
# SSL_SERVER_CERT. Chúng chứa các chứng chỉ được mã hóa PEM của
# máy chủ (luôn tồn tại) và máy khách (chỉ tồn tại khi máy khách
# xác thực được sử dụng). Điều này có thể được sử dụng để nhập các chứng chỉ
# thành tập lệnh CGI.
# o StdEnvVars:
# Thao tác này xuất các biến môi trường `SSL_*' liên quan đến SSL/TLS tiêu chuẩn.
# Theo mặc định, quá trình xuất này bị tắt vì lý do hiệu suất,
# vì bước trích xuất là một hoạt động tốn kém và thường
# vô dụng để phục vụ nội dung tĩnh. Vì vậy, người ta thường kích hoạt
# chỉ xuất cho các yêu cầu CGI và SSI.
# o Chọn Đàm phán lại:
# Điều này cho phép xử lý đàm phán lại kết nối SSL được tối ưu hóa khi SSL
# chỉ thị được sử dụng trong ngữ cảnh mỗi thư mục.
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Thư mục /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Thư mục>
# Điều chỉnh giao thức SSL:
# Tắt an toàn và mặc định nhưng vẫn tuân thủ tiêu chuẩn SSL/TLS
# cách tiếp cận là mod_ssl gửi cảnh báo thông báo đóng nhưng không đợi
# cảnh báo đóng thông báo từ khách hàng. Khi bạn cần tắt máy khác
# cách tiếp cận, bạn có thể sử dụng một trong các biến sau:
# o ssl-unclean-tắt máy:
# Điều này buộc tắt máy không sạch khi kết nối bị đóng, tức là không
# Thông báo đóng SSL được gửi hoặc được phép nhận. Điều này vi phạm
# tiêu chuẩn SSL/TLS nhưng cần thiết cho một số trình duyệt chết não. Sử dụng
# điều này khi bạn nhận được lỗi I/O do cách tiếp cận tiêu chuẩn trong đó
# mod_ssl gửi cảnh báo thông báo đóng.
# o ssl-tắt-chính xác:
# Điều này buộc tắt máy chính xác khi đóng kết nối, tức là một
# Thông báo đóng SSL được gửi và mod_ssl chờ thông báo đóng
# cảnh báo của khách hàng. Đây là tiêu chuẩn SSL/TLS tuân thủ 100%, nhưng trong
# thực hành thường gây treo kết nối với các trình duyệt chết não. Sử dụng
# điều này chỉ dành cho các trình duyệt mà bạn biết rằng việc triển khai SSL của họ
# hoạt động chính xác.
# Lưu ý: Hầu hết các sự cố của máy khách bị hỏng cũng liên quan đến HTTP
# cơ sở duy trì hoạt động, vì vậy bạn thường muốn tắt thêm
# keep-alive cho những khách hàng đó nữa. Sử dụng biến "nokeepalive" cho việc này.
# Tương tự, người ta phải buộc một số khách hàng sử dụng HTTP/1.0 để giải quyết
# quá trình triển khai HTTP/1.1 bị hỏng của họ. Sử dụng các biến "hạ cấp-1.0" và
# "force-response-1.0" cho việc này.
# BrowserMatch "MSIE [2-6]" \
# nokeepalive ssl-unclean-shutdown \
# downgrade-1.0 force-response-1.0
</Máy chủ ảo>
</IfModule>
# vim: cú pháp=apache ts=4 sw=4 sts=4 sr noet
dev.example.de & cloud.example.de có chứng chỉ ssl ký tự đại diện và chuyển hướng cả hai vào thư mục html??
nhập mô tả hình ảnh ở đây
Điều tương tự xảy ra khi tôi sử dụng cái này:
nhập mô tả hình ảnh ở đây