Как заменить дефолтный сертификат 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