Am un certificat wildcard ssl (letsencrypt) de exemplu.de și *.example.com.
000-default.conf meu arată astfel:
<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>
default-ssl.conf:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.de
SSLEngine activat
SSLCertificateFile /etc/letsencrypt/live/example.de/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.de/privkey.pem
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinat
</VirtualHost>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Niveluri de jurnal disponibile: trace8, ..., trace1, debug, info, notice, warn,
# eroare, critică, alertă, emerg.
# De asemenea, este posibil să configurați nivelul de jurnal pentru un anumit
# module, de ex.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combinat
# Pentru majoritatea fișierelor de configurare din conf-available/, care sunt
# activat sau dezactivat la nivel global, este posibil să
# includeți o linie doar pentru o anumită gazdă virtuală. De exemplu, cel
# următoarea linie activează configurația CGI numai pentru această gazdă
# după ce a fost dezactivat global cu „a2disconf”.
#Include conf-available/serve-cgi-bin.conf
# Comutator motor SSL:
# Activați/dezactivați SSL pentru această gazdă virtuală.
SSLEngine activat
# Un certificat autosemnat (snakeoil) poate fi creat prin instalare
# pachetul ssl-cert. Vedea
# /usr/share/doc/apache2/README.Debian.gz pentru mai multe informații.
# Dacă atât cheia, cât și certificatul sunt stocate în același fișier, numai
# Este necesară directiva SSLCertificateFile.
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
# Lanț de certificate de server:
# Indicați SSLCertificateChainFile la un fișier care conține
# concatenarea certificatelor CA codificate PEM care formează
# lanț de certificate pentru certificatul de server. Alternativ
# fișierul la care se face referire poate fi același cu SSLCertificateFile
# când certificatele CA sunt atașate direct la server
# certificat pentru convingere.
#SSLCertificateChainFile /etc/apache2/ssl.crt/server-ca.crt
# Autoritate de certificare (CA):
# Setați calea de verificare a certificatului CA unde să găsiți CA
# certificate pentru autentificarea clientului sau, alternativ, unul
# fișier uriaș care le conține pe toate (fișierul trebuie să fie codificat PEM)
# Notă: în SSLCACertificatePath aveți nevoie de legături simbolice hash
# pentru a indica fișierele de certificat. Folosiți cele furnizate
# Makefile pentru a actualiza legăturile simbolice hash după modificări.
#SSLCACertificatePath /etc/ssl/certs/
#SSLCACertificateFile /etc/apache2/ssl.crt/ca-bundle.crt
# Liste de revocare a certificatelor (CRL):
# Setați calea de revocare a CA unde să găsiți CRL-urile CA pentru client
# autentificare sau, alternativ, un fișier uriaș care conține toate
# dintre ele (fișierul trebuie să fie codificat PEM)
# Notă: în interiorul SSLCARevocationPath aveți nevoie de legături simbolice hash
# pentru a indica fișierele de certificat. Folosiți cele furnizate
# Makefile pentru a actualiza legăturile simbolice hash după modificări.
#SSLCARevocationPath /etc/apache2/ssl.crl/
#SSLCARevocationFile /etc/apache2/ssl.crl/ca-bundle.crl
# Autentificare client (tip):
# Tipul și adâncimea verificării certificatului clientului. Tipurile sunt
# none, optional, require and optional_no_ca. Adâncimea este a
# număr care specifică cât de profund trebuie verificat certificatul
# lanțul emitentului înainte de a decide că certificatul nu este valid.
#SSLVerifyClient necesită
#SSLVerifyDepth 10
# Opțiuni pentru motor SSL:
# Setați diferite opțiuni pentru motorul SSL.
# o FakeBasicAuth:
# Traduceți clientul X.509 într-o Autorizare de bază. Aceasta înseamnă că
# metodele standard Auth/DBMAuth pot fi folosite pentru controlul accesului. The
# numele de utilizator este versiunea „o singură linie” a certificatului X.509 al clientului.
# Rețineți că nu se obține nicio parolă de la utilizator. Fiecare intrare în utilizator
# fișier are nevoie de această parolă: `xxj31ZMTZzkVA'.
# o ExportCertData:
# Aceasta exportă două variabile de mediu suplimentare: SSL_CLIENT_CERT și
# SSL_SERVER_CERT. Acestea conțin certificatele codificate PEM ale
# server (existent întotdeauna) și clientul (existând doar când client
# este folosită autentificarea). Acesta poate fi folosit pentru a importa certificatele
# în scripturi CGI.
# o StdEnvVars:
# Aceasta exportă variabilele de mediu standard SSL/TLS legate de „SSL_*”.
# În mod implicit, această exportare este dezactivată din motive de performanță,
# deoarece etapa de extracție este o operațiune costisitoare și este de obicei
# inutil pentru difuzarea conținutului static. Deci, de obicei, se activează
# export numai pentru cererile CGI și SSI.
# o OptRenegotiate:
# Acest lucru permite gestionarea optimizată a renegocierii conexiunii SSL atunci când SSL
# directivele sunt folosite în context per-director.
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Director /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Director>
# Ajustări protocol SSL:
# Închiderea sigură și implicită, dar totuși conformă cu standardul SSL/TLS
# abordarea este că mod_ssl trimite alerta de notificare de închidere, dar nu așteaptă
# alerta de închidere de la client. Când aveți nevoie de o altă oprire
# abordare puteți utiliza una dintre următoarele variabile:
# o ssl-unclean-shutdown:
# Acest lucru forțează o oprire necurată atunci când conexiunea este închisă, adică nu
# Alerta de notificare de închidere SSL este trimisă sau permisă să fie primită. Acest lucru încalcă
# standardul SSL/TLS, dar este necesar pentru unele browsere în moarte cerebrală. Utilizare
# asta atunci când primiți erori I/O din cauza abordării standard unde
# mod_ssl trimite alerta de notificare de închidere.
# o ssl-accurate-shutdown:
# Acest lucru forțează o oprire precisă atunci când conexiunea este închisă, adică a
# Alerta de închidere SSL este trimisă și mod_ssl așteaptă notificarea de închidere
# alertă a clientului. Acesta este 100% compatibil cu standardul SSL/TLS, dar în
# practica provoacă adesea conexiuni suspendate cu browsere în moarte cerebrală. Utilizare
# asta numai pentru browserele în care știți că implementarea lor SSL
# funcționează corect.
# Notă: Cele mai multe probleme ale clienților rupti sunt legate și de HTTP
# facilitate de menținere în viață, așa că de obicei doriți să o dezactivați
# păstrați-vă în viață și pentru acești clienți. Utilizați variabila „nokeepalive” pentru aceasta.
# În mod similar, trebuie să forțați unii clienți să folosească HTTP/1.0 pentru o soluție
# implementarea lor HTTP/1.1 întreruptă. Utilizați variabilele „downgrade-1.0” și
# „force-response-1.0” pentru aceasta.
# BrowserMatch „MSIE [2-6]” \
# nokeepalive ssl-unclean-shutdown \
# downgrade-1.0 forță-răspuns-1.0
</VirtualHost>
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
dev.example.de și cloud.example.de au certificatul ssl wildcard și le redectează pe ambele în directorul html?
introduceți descrierea imaginii aici
La fel s-a întâmplat când folosesc asta:
introduceți descrierea imaginii aici