Відповіді:
Я щойно спробував це - мені потрібно було протестувати якийсь код розробки на моєму локальному хості Apache в Windows . Це WAAAY було складніше, ніж повинно бути. Але ось кроки, які вдалося пропрацювати після багатого вичісування волосся ...
Я виявив, що встановити Apache, openssl.exe
що корисно. Якщо у вас немає копії, вам потрібно буде її завантажити. Моя копія була в Apache2\bin
папці, на яку я посилаюся на неї нижче.
Кроки:
Apache2\conf
папці..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
Ви можете залишити всі питання порожніми, крім:
Коли це завершиться, введіть
..\bin\openssl rsa -in blarg.pem -out blarg.key
Створіть свій самопідписаний сертифікат, ввівши:
..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365
Відкрийте conf\httpd.conf
файл Apache і переконайтеся, що модуль SSL увімкнено - на початку цього рядка не повинно бути хешу:
LoadModule ssl_module modules/mod_ssl.so
Деякі установки Apache конфігурують SSL в окремий файл. Якщо так, переконайтеся, що файл конфлікту SSL включений. У моєму випадку мені довелося скаментувати цей рядок:
Include conf/extra/httpd-ssl.conf
У конфігурації SSL httpd-ssl.conf
мені довелося оновити наступні рядки:
SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
SSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
DocumentRoot
- встановіть це в папку для ваших веб-файлівServerName
- ім'я хоста сервераSSLCertificateFile "conf/blarg.cert"
SSLCertificateKeyFile "conf/blarg.key"
Перезапустіть Apache.
https://localhost/
у своєму браузері.Сподіваємось, ви зробили це так далеко. Не соромтеся оновлювати цю публікацію будь-якою іншою корисною інформацією.
(Скріншоти люб’язно Ніла Обремського та його корисної статті - хоча зараз це вже застаріло.)
Для цього я використовую ngrok ( https://ngrok.com/ ). ngrok - це інструмент командного рядка та створити тунель для localhost. Це створює як http, так і https зв’язок. Після його завантаження необхідно виконати таку команду:
ngrok http 80
(У версії 2 синтаксис: ngrok http 80. У версії 2 будь-який порт можна тунелювати.)
Через кілька секунд він видасть два URL-адреси:
http://a_hexadecimal_number.ngrok.com
https://a_hexadecimal_number.ngrok.com
Тепер обидва URL-адреси вказують на localhost.
ось найпростіший спосіб зробити це
спочатку скопіюйте ці файли server.crt & server.key (знайдіть у вкладеному файлі) у свій каталог apache / conf / ssl
потім відкрийте файл httpd.conf та додайте наступний рядок
Listen 80
Listen 443
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost *:443>
DocumentRoot "d:/wamp/www" #your wamp www root dir
ServerName localhost
SSLEngine on
SSLCertificateFile "d:/wamp/bin/apache/Apache2.4.4/conf/ssl/server.crt"
SSLCertificateKeyFile "d:/wamp/bin/apache/Apache2.4.4/conf/ssl/server.key"
</VirtualHost>
З метою захисту безпеки інформації, що надсилається на ваш веб-сервер і з нього, корисно включити шифрування зв'язку між клієнтами та сервером. Це часто називають SSL .
Тож давайте налаштуємо HTTPS з самопідписаним сертифікатом на Apache2. Я перерахую кроки, які вам слід виконати:
sudo apt-get install apache2
статус sudo служби apache2
Він повинен вивести
Переконайтеся, що ви отримуєте сторінку за замовчуванням для apache2, як це.
openssl req -x509 -newkey rsa: 2048 -keyout mykey.key -out mycert.pem -days 365-вузли
Будь ласка, заповніть інформацію відповідно, як показано нижче.
mykey.key та mycert.pem повинні бути створені у вашому поточному робочому каталозі.
sudo cp mycert.pem / etc / ssl / certs
sudo cp mykey.key / etc / ssl / private
sudo a2enmod ssl
Він повинен вийти так
sudo vi /etc/apache2/sites-available/default-ssl.conf
Будь ласка, знайдіть ці два рядки та замініть їх на ваш сертифікат і ключові шляхи.
Початкові
Фінал
cd / тощо / apache2 / доступні сайти /
sudo a2ensite за замовчуванням-ssl.conf
перезапуск служби sudo служби apache2
Потрібно вивести щось подібне із попередженням, що сторінка, яку ви збираєтеся переглянути, не захищена, оскільки ми налаштували сервер із самопідписаним сертифікатом.
default-ssl.conf
як є. Я збирався перейменувати mycert
в ssl-cert-snakeoil
але цей файл вже існує , так що я просто використав це! Тож я зміг спокійно пропустити два кроки на Debian.
Windows + Apache 2.4, наприклад:
unment ssl_module у вашому httpd.conf
файлі.
LoadModule ssl_module modules/mod_ssl.so
прослухайте 443 порт так само, як 80 порт у вашому httpd.conf
файлі.
Listen 80
Listen 443
Включіть у свій httpd.conf
файл віртуальних хостів .
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
додайте VirtualHost у свій conf/extra/httpd-vhosts.conf
<VirtualHost _default_:443>
DocumentRoot "D:/www" #your site directory path
ServerName localhost
#ServerAlias localhost.com localhost2.com
SSLEngine on
SSLCertificateFile "${SRVROOT}/conf/ssl/server.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/ssl/server.key"
<Directory "D:/www">
Options -Indexes +FollowSymLinks +ExecCGI
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
тільки номер порту 443
та SSL......
рядки відрізняються від звичайного http config.
збережіть конфігураційний файл та перезапустіть службу apache. тоді ви можете відвідати https: // localhost /
Веб-браузер попередить вас, що вперше це небезпечно, просто виберіть «продовжити».
Це насправді досить просто, якщо припустити, що вам зручна установка opensl. (На якій платформі ви працюєте?)
Якщо припустити, що ви перебуваєте на linux / solaris / mac os / x, Apache SSL / TLS mini-HOWTO Вана має чудовий прохід, який я тут не відтворюю.
Однак підсумкове повідомлення про те, що вам потрібно створити сертифікат, який підписав самостійно. Оскільки ви запускаєте apache для localhost, імовірно, для розробки (тобто не загальнодоступного веб-сервера), ви знатимете, що можете довіряти самопідписаному сертифікату і можете ігнорувати попередження, які ваш браузер буде кидати вам.
Це має бути робота Ubuntu, Mint, аналогічна Apache2
Це приємне керівництво, тому слідуючи цьому
і залишити свій ssl.conf таким або подібним
<VirtualHost _default_:443>
ServerAdmin your@email.com
ServerName localhost
ServerAlias www.localhost.com
DocumentRoot /var/www
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ви можете це отримати.
Сподіваюся, це допоможе linuxer
Це дуже просто,
просто запустіть наступні команди
sudo a2enmod ssl
sudo service apache2 restart
sudo a2ensite default-ssl.conf
Це все, ви зробили.
Якщо ви хочете застосувати SSL (завжди використовувати https), відредагуйте файл:
sudo nano /etc/apache2/sites-available/000-default.conf
і додайте цей один рядок
<VirtualHost *:80>
. . .
Redirect "/" "https://your_domain_or_IP/"
. . .
</VirtualHost>
потім знову перезапустіть
sudo service apache2 restart
systemctl reload apache2
після sudo a2ensite default-ssl.conf
.
Я надсилаю цю відповідь, оскільки я сам боровся з цим, і Chrome оновив свою безпеку, вимагаючи альтернативного імені тематики, якого немає у багатьох публікаціях, оскільки це не потрібно, коли вони були розміщені як відповідь. Я припускаю, що WAMP вже встановлений.
КРОК 1
Завантажте OpenSSL Light та встановіть
Хоча ця частина є необов’язковою, але це полегшує пізніше виконання команд. Якщо пропустити цей крок, вам доведеться надати повний шлях до openssl.exe, де ви будете виконувати команду. Якщо ви віддаєте перевагу його встановленню, то оновіть шлях openssl.exe у змінні середовища.
Змінні середовища -> Змінні системи -> Шлях -> Редагувати -> Нове -> c: \ Програмні файли \ OpenSSL-Win64 \ bin
Створіть папку з ім'ям «ключ» в c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/
каталозі.
Створіть файл конфігурації для вашого CA MyCompanyCA.cnf із вмістом (ви можете змінити його під свої потреби):
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = root_ca
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
localityName = Locality Name (eg, city)
0.organizationName = Organization Name (eg, company)
organizationalUnitName = Organizational Unit Name (eg, section)
commonName = Common Name (eg, fully qualified host name)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 64
[ root_ca ]
basicConstraints = critical, CA:true
Створіть файл конфігурації розширень MyCompanyLocalhost.ext для сертифіката вашого веб-сервера:
subjectAltName = @alt_names
extendedKeyUsage = serverAuth
[alt_names]
DNS.1 = localhost
DNS.2 = mycy.mycompany.com
Виконайте ці команди в заданому порядку для створення ключа та сертифікатів:
openssl req -x509 -newkey rsa:2048 -out MyCompanyCA.cer -outform PEM -keyout MyCompanyCA.pvk -days 10000 -verbose -config MyCompanyCA.cnf -nodes -sha256 -subj "/CN=MyCompany CA"
openssl req -newkey rsa:2048 -keyout MyCompanyLocalhost.pvk -out MyCompanyLocalhost.req -subj /CN=localhost -sha256 -nodes
openssl x509 -req -CA MyCompanyCA.cer -CAkey MyCompanyCA.pvk -in MyCompanyLocalhost.req -out MyCompanyLocalhost.cer -days 10000 -extfile MyCompanyLocalhost.ext -sha256 -set_serial 0x1111
В результаті у вас будуть файли MyCompanyCA.cer , MyCompanyLocalhost.cer та MyCompanyLocalhost.pvk .
Встановіть MyCompanyCA.cer під
Панель управління -> Керування сертифікатами користувачів -> Довірені органи кореневої сертифікації -> Сертифікати
Щоб встановити MyCompanyLocalhost.cer, двічі клацніть його.
Відкрийте c:/wamp64/bin/apache/apache2.4.27(your version number)/conf/httpd.conf
та не коментуйте (видаліть #) наступні 3 рядки:
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Відкрийте c:/wamp64/bin/apache/apache2.4.37/conf/extra/httpd-ssl.conf
та змініть всі параметри на наведені нижче:
Directory "c:/wamp64/www"
DocumentRoot "c:/wamp64/www"
ServerName localhost:443
ServerAdmin admin@example.com
ErrorLog "c:/wamp64/bin/apache/apache2.4.27/logs/error.log"
TransferLog "c:/wamp64/bin/apache/apache2.4.27/logs/access.log"
SSLCertificateFile "c:/wamp64/bin/apache/apache2.4.27/conf/key/MyCompanyLocalhost.cer"
SSLCertificateKeyFile "c:/wamp64/bin/apache/apache2.4.27/conf/key/MyCompanyLocalhost.pvk"
SSLSessionCache "shmcb:c:/wamp64/bin/apache/apache2.4.27/logs/ssl_scache(512000)"
CustomLog "c:/wamp64/bin/apache/apache2.4.27/logs/ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Примітка: Це складна частина. Якщо ви допустите невелику помилку під час редагування цього файлу, SSL не працюватиме. Зробіть його копію перед редагуванням.
Перезапустіть Wamp та Chrome. Localhost тепер захищений: https: // localhost
Цей HowTo для CentOS легко слідкувати і зайняв лише 5 хвилин: https://wiki.centos.org/HowTos/Https
Я не буду деталізувати тут кожен крок, але основними кроками є:
1.) Встановіть модуль openssl для apache, якщо він ще не встановлений
2.) Створіть самопідписаний сертифікат
- У цьому пункті ви повинні мати можливість успішно відвідати https: // localhost
3.) Налаштуйте віртуальний хост за потреби
Це працювало в Windows 10 з Apache24:
1 - Додайте це внизу C:/Apache24/conf/httpd.conf
Listen 443
<VirtualHost *:443>
DocumentRoot "C:/Apache24/htdocs"
ServerName localhost
SSLEngine on
SSLCertificateFile "C:/Apache24/conf/ssl/server.crt"
SSLCertificateKeyFile "C:/Apache24/conf/ssl/server.key"
</VirtualHost>
2 - Додайте файли server.crt
та server.key
файли у C:/Apache24/conf/ssl
папку. Дивіться інші відповіді на цій сторінці, щоб знайти ці 2 файли.
Це воно!
httpd.conf
, в який файл я його вставлю? Ось що відбувається, коли я вклав цей текст всередину apache2.conf
:Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration
ssh -R youruniquesubdomain:80:localhost:3000 serveo.net
А ваше місцеве оточення можна отримати з https://youruniquesubdomain.serveo.net
Я не міг повірити, коли знайшов цю послугу. Він пропонує все, і це найпростіше у використанні. Якби був такий легкий і безболісний інструмент для кожної проблеми ...
Тут запущено Apache на Windows 10. Я не міг змусити Chrome довіряти сертифікату, який було зроблено у верхній відповіді Саймона. Що я в кінцевому підсумку робив, було використовувати PowerShell для створення сертифіката, який підписав самостійно.
У PowerShell
New-SelfSignedCertificate -DnsName "localhost" -CertStoreLocation "cert:\LocalMachine\My"
1
Введіть Certificate
у рядок пошуку Windows, натисніть запропонований Manage Computer Certificates
елемент панелі керування.
У програмі управління сертифікатами, яка з'являється (certlm), ви повинні побачити localhost
ключ під Personal >> Certificates
.
Я скопіював цей сертифікат у Trusted Root Certification Authorities
. Я буду чесною в тому, що не впевнений, чи потрібно.
Вибравши нещодавно скопійований сертифікат, двічі клацніть його (сертифікат localhost). У режимі сертифікату натисніть на Details
вкладку, а потім на Copy to File...
кнопку.
Це дозволить відкрити майстер експорту, і я вирішив експортувати приватний ключ, натисніть далі. Я також вирішив Export all extended properties
(знову ж таки, я не впевнений, чи це було необхідно). Я вирішив використовувати простий пароль ( pass
) та шифрування за замовчуванням. Виберіть папку, до якої потрібно експортувати та назвати файл. Ви завжди можете перемістити та перейменувати файл, якщо це необхідно. Для простоти давайте скопіюйте його в папку конф під встановленням Apache (у моєму випадку C:\apache\conf
:) і назвіть файл myCert
(отриманий файл буде .pfx
файлом)
.pfx
файлу для використання з ApacheЗвідси я в основному дотримувався підручника тут , але я додаю тут інструкції (перероблені для наших налаштувань) у випадку, якщо цей сайт не працює.
Відкрийте командний рядок в /apache/conf/
папці
,
виконайте наступні команди: Примітка: Це передбачає , що ви маєте openssl.exe
в bin
папці в кореневій папці апача (це повинно бути стандартним / по замовчуванням)
..\bin\openssl pkcs12 -in myCert.pfx -nocerts -out privateKey.pem
Це запропонує вам ввести пароль, введіть те, що ви ввели для кроку 2, коли ви експортували .pfx
файл. У моєму випадку це так pass
. Я ввів той самий пароль для фрази PEM і знову для підтвердження. Це створить новий файл, який називається privateKey.pem
у вашій папці conf.
Потім бігайте
..\bin\openssl rsa -in privateKey.pem -out private.pem
Знову вам буде запропоновано ввести пароль ( Enter pass phrase for privateKey.pem:
), використовуйте встановлений для вас пароль privateKey.pem
. (У моєму випадку pass
).
У вашій папці повинно з’явитися повідомлення, в якому написано, writing RSA key
і новий файл, викликаний . Це буде ваш SSLCertificateKeyFile.private.pem
conf/
Тепер для створення відповідного сертифіката сервера. Виконати:
..\bin\openssl pkcs12 -in myCert.pfx -clcerts -nokeys -out EntrustCert.pem
Це запропонує вам ввести пароль, введіть те, що ви ввели для кроку 2, коли ви експортували .pfx
файл. Введіть його, і тепер EntrustCert.pem
у вашій conf
папці з'явиться файл, який називається . Це ваш SSLCertificateFile
httpd.conf
Використовуйте нові файли, створені як серверний ключ та сертифікат. Не забудьте змінити корінь документа на те, де є ваші файли!
ServerName localhost:80
Protocols h2 h2c http/1.1
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<VirtualHost _default_:443>
ServerName localhost:443
DocumentRoot ${SRVROOT}/htdocs/MYSITE
SSLEngine on
SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
</VirtualHost>
Також у httpd.conf
:
LoadModule ssl_module modules/mod_ssl.so
це не коментується (немає #
спереду)LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule http2_module modules/mod_http2.so
Include conf/extra/httpd-ssl.conf
(ПРИМІТКА. Переконайтесь, що там знаходиться файл!)У мене також є бібліотеки curl та відкритих ssl:
# load curl and open ssl libraries
LoadFile "C:\php\libeay32.dll"
LoadFile "C:\php\ssleay32.dll"
LoadFile "C:\php\libssh2.dll"
Ці модулі не повинні бути потрібними, але зауважу, що я їх увімкнув:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
httpd-ssl.conf
У extra/
папці в conf/
папці ви повинні побачити файл з назвоюhttpd-ssl.conf
.
5а. ЗмінитиDocumentRoot
- Змініть DocumentRoot
з за замовчуванням на каталог, де знаходяться ваші файли.
5б. ЗмінаServerName
- Змініть ServerName
з за замовчуванням (щось на зразок www.example.com:443
) наlocalhost:443
5с. ЗмінітьSSLCertificateFile
Змінити параметр SSLCertificateFile
з за замовчуванням ( ${SRVROOT}/conf/server.crt
) на${SRVROOT}/conf/EntrustCert.pem
5с. ЗмінітьSSLCertificateKeyFile
Змінити параметр SSLCertificateKeyFile
з за замовчуванням ( ${SRVROOT}/conf/server.key
) на${SRVROOT}/conf/private.pem
Всі разом, у <VirtualHost _default_:443>
тезі.
# General setup for the virtual host
DocumentRoot "${SRVROOT}/htdocs/MYSITE"
ServerName localhost:443
ServerAdmin admin@example.com
ErrorLog "${SRVROOT}/logs/error.log"
TransferLog "${SRVROOT}/logs/access.log"
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. Keep
# in mind that if you have both an RSA and a DSA certificate you
# can configure both in parallel (to also allow the use of DSA
# ciphers, etc.)
# Some ECC cipher suites (http://www.ietf.org/rfc/rfc4492.txt)
# require an ECC certificate which can also be configured in
# parallel.
SSLCertificateFile "${SRVROOT}/conf/EntrustCert.pem"
#SSLCertificateFile "${SRVROOT}/conf/server-dsa.crt"
#SSLCertificateFile "${SRVROOT}/conf/server-ecc.crt"
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
# ECC keys, when in use, can also be configured in parallel
SSLCertificateKeyFile "${SRVROOT}/conf/private.pem"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-dsa.key"
#SSLCertificateKeyFile "${SRVROOT}/conf/server-ecc.key"
Після внесення цих змін ви зможете перезапустити Apache та перейти до https: // localhost без попередження безпеки та невеликого замока!
Я сподіваюся, що це комусь допоможе! 😊
Джерела:
1.) Відповідь Аурі Рахімзаде про створення сертифіката, що підписується самостійно.
2. Карта довіри - як я можу конвертувати .pfx для використання з сервером Apache?
Ще один простий метод - використання сервера Python в Ubuntu.
Створіть server.xml за допомогою наступної команди в терміналі:
openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
Примітка. Припустимо, що у вас встановлено openssl .
Збережіть код нижче у файлі з іменем simple-https-server.py
у будь-якій директорії, в якій потрібно запустити сервер.
import BaseHTTPServer, SimpleHTTPServer
import ssl
httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True)
httpd.serve_forever()
Запустіть сервер з терміналу:
python simple-https-server.py
Відвідайте сторінку за адресою:
https://localhost:4443
Додаткові примітки :
Ви можете змінити порт у simple-https-server.py
файлі в рядку
httpd = BaseHTTPServer.HTTPServer(('localhost', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
Ви можете перейти localhost
на свій IP-адресу в тому ж рядку, що вище:
httpd = BaseHTTPServer.HTTPServer(('10.7.1.3', 4443), SimpleHTTPServer.SimpleHTTPRequestHandler)
і отримати доступ до сторінки на будь-якому пристрої, до якого підключена мережа. Це дуже зручно у випадках, наприклад, "вам доведеться перевірити HTML5 GeoLocation API на мобільному пристрої, а Chrome обмежує API лише у захищених з'єднаннях".
Суть: https://gist.github.com/dergachev/7028596
http://www.piware.de/2011/01/creating-an-https-server-in-python/
Для тих, хто використовує macOS, це чудовий посібник https://getgrav.org/blog/macos-sierra-apache-multiple-php-versions для налаштування локального середовища для веб-розробників. У своїй третій частині https://getgrav.org/blog/macos-sierra-apache-ssl Енді Міллер пояснює, як налаштувати apache за допомогою самопідписаного сертифіката:
Це ключова команда:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt
Але вам потрібно виконати кілька кроків, тому перевірте це і удачі! ;)
Я хотів би додати щось до дуже гарної відповіді @CodeWarrior, яка ідеально працює в Chrome, але для Firefox потрібен додатковий крок.
Оскільки Firefox не видає сертифікати CA, які Windows працює за замовчуванням, вам потрібно продовжити about:config
, прокручувати вниз security.enterprise_roots.enabled
і змінити його на true.
Тепер ваш сертифікат повинен вважатися дійсним і на Firefox.
Звичайно, це стосується лише розробок, оскільки довіра ssl є критичною проблемою безпеки і змінити ці налаштування лише у тому випадку, якщо ви знаєте наслідки.
ssh -R youruniquesubdomain:80:localhost:3000 serveo.net
Пощеплюйте свій субдомен та номер порту, і ви готові продовжувати роботуhttps://youruniquesubdomain.serveo.net