Страница 1 из 1
HTTPS/SSL для доступа по IP
Добавлено: 08 ноя 2023, 13:37
aolko
Привет. Пытаюсь настроить SSL, пользуюсь
этим конфигом и
этим батником. Для внутренних доменов всё работает замечательно, но как быть с алиасами на IP? Как добиться того чтобы условно на том же 192.168.99.99 который ссылается на mysite.local тоже работал SSL и подцеплялся сертификат?
Re: HTTPS/SSL для доступа по IP
Добавлено: 09 ноя 2023, 12:02
aolko
Модифицировал батник и конфиг:
@echo OFF
setlocal enableextensions enabledelayedexpansion
set OPENSSL_CONF=%realprogdir%\modules\http\%httpdriver%\conf\openssl.cnf
set PATH=%PATH%;%realprogdir%\modules\http\%httpdriver%\bin
set CERTS_PATH=%realprogdir%\userdata\config\cert_files
set days=3660
set key_bits=2048
set dname=server
set generic_ips=127.0.0.1 0.0.0.0
rem Введите сюда IP компьютера на котором установлен сервер через пробел
set my_ip=192.168.4.48 192.168.56.1
echo [trust_cert] > %dname%.cnf
echo subjectAltName=@alt_names >> %dname%.cnf
echo keyUsage=digitalSignature,keyEncipherment,dataEncipherment >> %dname%.cnf
echo extendedKeyUsage=serverAuth,clientAuth >> %dname%.cnf
echo [alt_names] >> %dname%.cnf
set /a count_ip = 1
for %%a in (%generic_ips%) do (
echo IP.!count_ip! = %%a >> %dname%.cnf
set /a count_ip += 1
)
for %%b in (%my_ip%) do (
echo IP.!count_ip! = %%b >> %dname%.cnf
set /a count_ip += 1
)
set /a count = 1
for /f "tokens=*" %%G in ('dir %realprogdir%\domains\ /b') do (
echo DNS.!count! = %%G >> %dname%.cnf
set /a count += 1
echo DNS.!count! = www.%%G >> %dname%.cnf
set /a count += 1
)
openssl genrsa -out %CERTS_PATH%\%dname%.key %key_bits%
openssl req -sha256 -new -utf8 -key %CERTS_PATH%\%dname%.key -out %dname%.csr -subj /emailAddress="info\@ospanel\.io"/C=RU/stateOrProvinceName="Russian Federation"/L=Moscow/O="Open Server Panel"/OU=Software/CN=%dname%
openssl x509 -sha256 -req -days %days% -in %dname%.csr -extfile %dname%.cnf -extensions trust_cert -CA %CERTS_PATH%\rootCA.crt -CAkey %CERTS_PATH%\rootCA.key -out %CERTS_PATH%\%dname%.crt
openssl x509 -in %CERTS_PATH%\%dname%.crt -noout -purpose
del %dname%.csr
del %dname%.cnf
#-----------------------------------------------#
# Начало блока конфигурации HTTPS хоста
#-----------------------------------------------#
<IfModule ssl_module>
<VirtualHost *:%httpsport%>
DocumentRoot "%hostdir%"
ServerName "%host%"
ServerAlias "%host%" %aliases%
ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/"
SSLEngine on
#Header always set Strict-Transport-Security "max-age=94608000"
#SSLCACertificateFile "%sprogdir%/userdata/config/cert_files/ca.crt"
#SSLCertificateChainFile "%sprogdir%/userdata/config/cert_files/CertificateChain.crt"
SSLCertificateFile "%sprogdir%/userdata/config/cert_files/server.crt"
SSLCertificateKeyFile "%sprogdir%/userdata/config/cert_files/server.key"
SetEnvIf User-Agent ".*MSIE [1-5].*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
SetEnvIf User-Agent ".*MSIE [6-9].*" \
ssl-unclean-shutdown
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "%hostdir%/cgi-bin/">
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
#-----------------------------------------------#
# Конец блока конфигурации HTTPS хоста
#-----------------------------------------------#
На ПК сертификат подхватывается, на устройствах - нет

Re: HTTPS/SSL для доступа по IP
Добавлено: 03 дек 2023, 17:23
bandsmet
aolko писал(а): ↑09 ноя 2023, 12:02
Модифицировал батник и конфиг:
@echo OFF
setlocal enableextensions enabledelayedexpansion
set OPENSSL_CONF=%realprogdir%\modules\http\%httpdriver%\conf\openssl.cnf
set PATH=%PATH%;%realprogdir%\modules\http\%httpdriver%\bin
set CERTS_PATH=%realprogdir%\userdata\config\cert_files
set days=3660
set key_bits=2048
set dname=server
set generic_ips=127.0.0.1 0.0.0.0
rem Введите сюда IP компьютера на котором установлен сервер через пробел
set my_ip=192.168.4.48 192.168.56.1
echo [trust_cert] > %dname%.cnf
echo subjectAltName=@alt_names >> %dname%.cnf
echo keyUsage=digitalSignature,keyEncipherment,dataEncipherment >> %dname%.cnf
echo extendedKeyUsage=serverAuth,clientAuth >> %dname%.cnf
echo [alt_names] >> %dname%.cnf
set /a count_ip = 1
for %%a in (%generic_ips%) do (
echo IP.!count_ip! = %%a >> %dname%.cnf
set /a count_ip += 1
)
for %%b in (%my_ip%) do (
echo IP.!count_ip! = %%b >> %dname%.cnf
set /a count_ip += 1
)
set /a count = 1
for /f "tokens=*" %%G in ('dir %realprogdir%\domains\ /b') do (
echo DNS.!count! = %%G >> %dname%.cnf
set /a count += 1
echo DNS.!count! = www.%%G >> %dname%.cnf
set /a count += 1
)
openssl genrsa -out %CERTS_PATH%\%dname%.key %key_bits%
openssl req -sha256 -new -utf8 -key %CERTS_PATH%\%dname%.key -out %dname%.csr -subj /emailAddress="info\@ospanel\.io"/C=RU/stateOrProvinceName="Russian Federation"/L=Moscow/O="Open Server Panel"/OU=Software/CN=%dname%
openssl x509 -sha256 -req -days %days% -in %dname%.csr -extfile %dname%.cnf -extensions trust_cert -CA %CERTS_PATH%\rootCA.crt -CAkey %CERTS_PATH%\rootCA.key -out %CERTS_PATH%\%dname%.crt
openssl x509 -in %CERTS_PATH%\%dname%.crt -noout -purpose
del %dname%.csr
del %dname%.cnf
#-----------------------------------------------#
# Начало блока конфигурации HTTPS хоста
#-----------------------------------------------#
<IfModule ssl_module>
<VirtualHost *:%httpsport%>
DocumentRoot "%hostdir%"
ServerName "%host%"
ServerAlias "%host%" %aliases%
ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/"
SSLEngine on
#Header always set Strict-Transport-Security "max-age=94608000"
#SSLCACertificateFile "%sprogdir%/userdata/config/cert_files/ca.crt"
#SSLCertificateChainFile "%sprogdir%/userdata/config/cert_files/CertificateChain.crt"
SSLCertificateFile "%sprogdir%/userdata/config/cert_files/server.crt"
SSLCertificateKeyFile "%sprogdir%/userdata/config/cert_files/server.key"
SetEnvIf User-Agent ".*MSIE [1-5].*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
SetEnvIf User-Agent ".*MSIE [6-9].*" \
ssl-unclean-shutdown
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "%hostdir%/cgi-bin/">
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>
#-----------------------------------------------#
# Конец блока конфигурации HTTPS хоста
#-----------------------------------------------#
Разобрался конечно немного с настройкой серверов, но легче все же когда это делают за тебя как на
https://sysadmin.com.ua/services/server
На ПК сертификат подхватывается, на устройствах - нет
Тоже с этой фигней мучаюсь уже задолбался
Re: HTTPS/SSL для доступа по IP
Добавлено: 03 дек 2023, 18:22
Ink0gnit0
@aolko, @bandsmet
А устройства знают о корневом сертификате %CERTS_PATH%\rootCA.crt?