We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Два SSL для двух доменов на одном IP
Два SSL для двух доменов на одном IP
Реально ли для VESTA подключить два SSL сертификата для двух доменов находящихся на одном IP?
Читал что можно сделать с помощью SNI. Какие идеи?
Читал что можно сделать с помощью SNI. Какие идеи?
Re: Два SSL для двух доменов на одном IP
Да вообще в целом для nginx - это не проблема.
Vesta по моему пока так не может. Вся суть в том, что apache не умеет 2 virtualhost на одном IP с разными SSL сертификатами, а nginx умеет.
Соответственно, в идеале, все что нам нужно это - добавить в апаче обычный VirtualHost, а в nginx хост с SSL и правильным проксированием.
Я сделал немного сложнее и в обход панели.
1. Добавил в apache Listen с новым портом
2. В /home/admin/conf/web/shttpd.conf к уже существующему <ip>:8443 хосту (корневой домен со своим сертификатом) - добавил
3. В /home/admin/conf/web/snginx.conf добавил vhost с заданными ssl сертификатами и проксированием не стандартного <ip>:8443 apache vhosta, а новосозданного 127.0.0.1:8443
Реализация довольно кривая и сложная, я создал и в apache - ssl хост, якобы на втором IP, и в nginx. Хотя в идеале - Vhost apache должен остаться на стандартном порту (без SSL), а nginx в силу своей мощи и умения держать на одном IP/порту несколько разных сертификатов будет распедаливать все.
Я думаю если немного поразкинуть мозгом - можно подкрутить стандартные templates конфигов апача и делать все это сразу через панель.
Vesta по моему пока так не может. Вся суть в том, что apache не умеет 2 virtualhost на одном IP с разными SSL сертификатами, а nginx умеет.
Соответственно, в идеале, все что нам нужно это - добавить в апаче обычный VirtualHost, а в nginx хост с SSL и правильным проксированием.
Я сделал немного сложнее и в обход панели.
1. Добавил в apache Listen с новым портом
Code: Select all
/etc/httpd/conf.d/82.196.1.21.conf
Listen 127.0.0.1:8443
Code: Select all
<VirtualHost 127.0.0.1:8443>
ServerName cloud.quaded.com
ServerAlias www.cloud.quaded.com
ServerAdmin [email protected]
DocumentRoot /home/admin/web/cloud.quaded.com/public_html
ScriptAlias /cgi-bin/ /home/admin/web/cloud.quaded.com/cgi-bin/
Alias /vstats/ /home/admin/web/cloud.quaded.com/stats/
Alias /error/ /home/admin/web/cloud.quaded.com/document_errors/
SuexecUserGroup admin admin
CustomLog /var/log/httpd/domains/cloud.quaded.com.bytes bytes
CustomLog /var/log/httpd/domains/cloud.quaded.com.log combined
ErrorLog /var/log/httpd/domains/cloud.quaded.com.error.log
<Directory /home/admin/web/cloud.quaded.com/public_html>
AllowOverride All
SSLRequireSSL
Options +Includes -Indexes +ExecCGI
</Directory>
<Directory /home/admin/web/cloud.quaded.com/stats>
AllowOverride All
</Directory>
SSLEngine on
SSLVerifyClient none
SSLCertificateFile /home/admin/conf/web/ssl.cloud.quaded.com.crt
SSLCertificateKeyFile /home/admin/conf/web/ssl.cloud.quaded.com.key
SSLCertificateChainFile /home/admin/conf/web/ssl.cloud.quaded.com.ca
<IfModule mod_ruid2.c>
RMode config
RUidGid admin admin
RGroups apache
</IfModule>
<IfModule itk.c>
AssignUserID admin admin
</IfModule>
Include /home/admin/conf/web/shttpd.cloud.quaded.com.conf*
</VirtualHost>
Code: Select all
server {
listen 443;
server_name cloud.quaded.com;
ssl on;
ssl_certificate /home/admin/conf/web/ssl.cloud.quaded.com.pem;
ssl_certificate_key /home/admin/conf/web/ssl.cloud.quaded.com.key;
error_log /var/log/httpd/domains/cloud.quaded.com.error.log error;
location / {
proxy_pass https://127.0.0.1:8443;
location ~* ^.+\.(jpg|jpeg|gif|png|ico|svg|css|zip|tgz|gz|rar|bz2|exe|pdf|doc|xls|ppt|txt|odt|ods|odp|odf|tar|bmp|rtf|js|mp3|avi|mpeg|flv|html|htm)$ {
root /home/admin/web/cloud.quaded.com/public_html;
access_log /var/log/httpd/domains/cloud.quaded.com.log combined;
access_log /var/log/httpd/domains/cloud.quaded.com.bytes bytes;
expires max;
try_files $uri @fallback;
}
}
location /error/ {
alias /home/admin/web/cloud.quaded.com/document_errors/;
}
location @fallback {
proxy_pass https://127.0.0.1:8443;
}
location ~ /\.ht {return 404;}
location ~ /\.svn/ {return 404;}
location ~ /\.git/ {return 404;}
location ~ /\.hg/ {return 404;}
location ~ /\.bzr/ {return 404;}
}
Я думаю если немного поразкинуть мозгом - можно подкрутить стандартные templates конфигов апача и делать все это сразу через панель.
Re: Два SSL для двух доменов на одном IP
Спасибо огромное за столь развернутый ответ!
Re: Два SSL для двух доменов на одном IP
то что индеец не может использовать два сертификата на одном порту это проблема модуля mod_ssl и openssl
обходится это легко, заменой модуля mod_ssl на mod_gnutls с соответствующей правкой конфига
http_ssl модуль nginx'а использует gnutls
обходится это легко, заменой модуля mod_ssl на mod_gnutls с соответствующей правкой конфига
http_ssl модуль nginx'а использует gnutls
Re: Два SSL для двух доменов на одном IP
Решилось все очень просто. Во второй домен всунул свежевыданные конфиги SSL. Выбрал Nginx Template FORCE-HTTPS и все заработало.
Установка SSL force:
Install custom nginx template
cd /usr/local/vesta/data/templates/web
wget http://c.vestacp.com/0.9.8/rhel/force-h ... inx.tar.gz
tar -xzvf nginx.tar.gz
rm -f nginx.tar.gz
Установка SSL force:
Install custom nginx template
cd /usr/local/vesta/data/templates/web
wget http://c.vestacp.com/0.9.8/rhel/force-h ... inx.tar.gz
tar -xzvf nginx.tar.gz
rm -f nginx.tar.gz