Настройка TLS и MinIO для 1С: создание сертификатов, настройка WebSocket и решение проблем с TLSv1

Создание сертификата с помощью keytool

keytool -genkey -alias websocket-keystore -keyalg RSA -keystore websocket-keystore.jks

После генерации сертификата экспортируем его в файл:

keytool -export -alias websocket-keystore -file websocket-keystore.cer -keystore websocket-keystore.jks

Полученный сертификат websocket-keystore.cer копируем на все компьютеры, где запускается 1С, и добавляем его в доверенные корневые центры сертификации.

Настройка WebSocket в 1С

ring cs --instance cs_instance websocket set-params --wss true
ring cs --instance cs_instance websocket set-params --keystore-path C:\cs\cs_instance\data\security\websocket-keystore.jks
ring cs --instance cs_instance websocket set-params --keystore-password 123456789!~
ring cs --instance cs_instance websocket set-params --keystore-format JKS

Адрес сервера взаимодействия:

wss://10.10.1.193:9999

Проблемы с TLSv1 и их решение

При регистрации может возникнуть ошибка:

Client requested protocol TLSv1 is not enabled or supported in server context.
Ошибка при регистрации. Невозможно устрановить соединение с сервером системы взаимодействия tlsv1 alert protocol version

Для её устранения откройте файл java.security и в параметре jdk.tls.disabledAlgorithms удалите tlsv1. После изменений перезапустите службу СВ.

Если появляется ошибка «certificate verify failed», скопируйте сертификат с сервера:

C:\cs\cs_instance\data\security\websocket-keystore.cer

и установите его в «Доверенные корневые центры сертификации» локального компьютера. После этого соединение должно работать:

wss://nizamov.tech:9999  (или 10.10.1.193:9999)

Настройка MinIO с HTTPS

Скачайте MinIO и OpenSSL:

Запустите MinIO сервер:

minio.exe server C:\MinIOBase --address ":9501" --console-address ":9001" --certs-dir C:\MinIO\certs

API и консоль доступны по адресам:

Логин/пароль по умолчанию:

minioadmin
minioadmin

Создание сертификата для HTTPS

Скачайте Cygwin, если работаете под Windows. Создайте ключи:

openssl ecparam -genkey -name prime256v1 | openssl ec -out private.key

Создайте файл openssl.conf со следующим содержимым:

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no

[req_distinguished_name]
C = RU
ST = RU
L = Somewhere
O = MyComp
OU = MyOU
CN = 10.10.1.193

[v3_req]
subjectAltName = @alt_names

[alt_names]
IP.1 = 10.10.1.193
DNS.1 = 10.10.1.193

Создайте самоподписанный сертификат:

openssl req -new -x509 -nodes -days 730 -keyout private.key -out public.crt -config openssl.conf

Копируйте private.key и public.crt в каталог C:\Users\ilya\.minio\certs (или в C:\MinIO\certs), затем перезапустите MinIO. Откройте брандмауэр Windows и откройте порты 9000 и 9001.

Добавление MinIO в базу данных

Для интеграции с системой хранения используйте следующий SQL‑запрос:

INSERT INTO public.storage_server(id, type, base_url, container_url, container_name, region, access_key_id, secret_key, signature_version, is_deleted, upload_limit, download_limit, file_size_limit, created_at, updated_at, cdn_url, cdn_key_id, cdn_secret_key, state, cdn_enabled, path_style_access_enabled, bytes_to_keep, days_to_keep, pricing_url, api_type, storage_type, files_to_keep)
VALUES(
    uuid_generate_v4(), 'AMAZON', 'https://94.41.85.231:6000','https://94.41.85.231:6000/${container_name}',
    'cs-bucket',
    '',
    'amazonuser',
    '1$56FgmQ~',
    'V4', false, 1073741824, 1073741824, 104857600, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, NULL, 'ACTIVE', false, true, 0, 0, NULL, 'AMAZON', 'DEFAULT', 31);

После выполнения запроса MinIO будет доступен как объектное хранилище в системе.

}