Как заменить дефолтный сертификат SSL FastPanel
Дефолтный сертификат SSL FastPanel доставляет неудобство тем, что браузер постоянно ругается на небезопасное соединение и не предлагает сохранить пароль, а так хочется не вводить его каждый раз.
Лучшее решение - это задать адрес панели с указанием домена. А если не хочется вешать панель на домен, то можно сгенерировать само-подписанный сертификат на IP адрес сервера и добавить его в доверенные источники.
Сгенерировать сертификат можно разными способами, в том числе и с помощью PHP. Для этого нам понадобится 2 файла.
1) Конфиг openSSL (пусть будет openssl_ip.cnf):
[req] default_bits = 2048 prompt = no default_md = sha512 distinguished_name = dn x509_extensions = v3_ca [ dn ] CN = my.tld C = country ST = state L = location O = ORGANISATION [ v3_ca ] subjectKeyIdentifier=hash authorityKeyIdentifier=keyid,issuer subjectAltName = @alternate_names keyUsage = digitalSignature, keyEncipherment [ alternate_names ] DNS.1 = your.site DNS.2 = www.your.site IP.1 = 12.34.56.78 IP.2 = 12.34.56.79
Домены и IP адреса приведены для примера, лишнее можно убрать или добавить еще, что нужно
2) И сам скрипт php:
<?php
$dn = array(
"commonName" => "your.site"
);
// Генерируем приватный ключ
$privkey = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
// Генерируем запрос на выдачу сертификата
$csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha512'));
// Генерируем само-подписанный сертификат на 7300 дней
$cert_x509 = openssl_csr_sign($csr, null, $privkey, $days = 7300, array('digest_alg' => 'sha512', 'config' => __DIR__ . '/openssl_ip.cnf'));
// Сохраняем сертификат в файл
openssl_x509_export_to_file($cert_x509, __DIR__ . '/fastpanel2.crt');
// Сохраняем приватный ключ в файл
openssl_pkey_export_to_file($privkey, __DIR__ . '/fastpanel2.key'); Полученные файлы fastpanel2.crt и fastpanel2.key нужно закинуть в /usr/local/fastpanel2-nginx/ssl-certs/ и перезагрузить fastpanel2-nginx
# service fastpanel2-nginx restart