- Создана пользователем Александр Акимов. Последнее обновление: мар. 11, 2025 ( Никита Никитин) Время чтения: 3 мин.
Смена сертификата через интерфейс
TRASSIR актуальных версий позволяет заменять сертификат через интерфейс. Функционал доступен как на TRASSIR OS, так и на Windows. Рекомендуется менять сертификат через интерфейс.
- Зайти в «Настройки сервера» и нажать кнопку «Управление сертификатами».

- В появившемся окне нажать кнопку «Изменить».

- В появившемся диалоговом окне указать пути к файлам сертификатов. Если ключ защищён паролем, указать пароль.

Основные функции
Скрипт позволяет сменить SSL сертификат, используемый на серверах TRASSIR OS.
Установка
- Перейти в автоматизацию, нажать «Загрузить пример» и выбрать «Из файла», указав путь к скрипту.
- Снять галочку «Включить скрипт» и нажать сохранить.
- Перейти в параметры, выбрать сервер и ввести тело (только содержимое внутри тегов) ssl_cert и ssl_pkey, по примеру:

- Снова сохранить скрипт.
- Для присвоения сертификата, поставьте галочку включить скрипт.
В случае успешного завершения работы скрипта вы увидите сообщение: ERROR: ResultMessage: Certificates successfully changed
# Change SSL v2.0
"""
<parameters>
<company>AATrubilin</company>
<title>Change SSL</title>
<version>2.0</version>
<parameter>
<type>server</type>
<id>SERVER_GUID</id>
<name>Trassir server</name>
<value></value>
</parameter>
<parameter>
<type>string</type>
<name>Certificate</name>
<id>SSL_CERT</id>
<value></value>
</parameter>
<parameter>
<type>string</type>
<name>Private key</name>
<id>SSL_PKEY</id>
<value></value>
</parameter>
</parameters>
"""
import host
GLOBALS = globals()
SERVER_GUID = GLOBALS.get("SERVER_GUID", "")
SSL_CERT = GLOBALS.get("SSL_CERT", "")
SSL_PKEY = GLOBALS.get("SSL_PKEY", "")
if not SERVER_GUID:
raise ValueError(host.tr("Server not selected"))
class ResultMessage(Exception):
def __init__(self, message):
message = """<span style="color: #009900">{message}</span>""".format(
message=message
)
super(ResultMessage, self).__init__(message)
def update_certificates(server_guid, cert, pkey):
"""Update server certificates
Args:
server_guid (str): Server guid
cert (str): Certificate
pkey (str): Private key
Raises:
ValueError: if empty cert or pkey
RuntimeError: if no access to ssl_cert or ssl_pkey key in system_wide_options
ResultMessage: if changed success
"""
if not server_guid:
server_guid = host.settings("").guid
if not cert:
raise ValueError(host.tr("Empty certificate"))
if not pkey:
raise ValueError(host.tr("Empty private key"))
system_wide_options = host.settings("/{}/system_wide_options".format(server_guid))
try:
system_wide_options["ssl_cert"] = (
"-----BEGIN CERTIFICATE-----\n{certificate}\n-----END CERTIFICATE-----"
).format(certificate=cert)
system_wide_options["ssl_pkey"] = (
"-----BEGIN RSA PRIVATE KEY-----\n{private_key}\n-----END RSA PRIVATE KEY-----"
).format(private_key=pkey)
except KeyError:
raise RuntimeError(
host.tr("Script user has no enough access or you need upgrade Trassir!")
)
raise ResultMessage(host.tr("Certificates successfully changed"))
update_certificates(SERVER_GUID, SSL_CERT, SSL_PKEY)