Как реализовать шифрование для open62541 с помощью create_self-signed.py - PullRequest
1 голос
/ 08 октября 2019

Я пытаюсь реализовать шифрование для моего сервера "open62541", который я подключаю с помощью UaExpert-Client. Сначала я создал самозаверяющий сертификат с помощью create_self-signed.py. После того, как я выполнил .py-файл с информацией о пути вывода, я получил «server_cert.der» и «server_key.der». Я пытался изменить конфигурацию сервера, но я точно уверен, какой метод я должен использовать. Может кто-нибудь сказать мне, где поместить эти ".der файлы" и какие методы мне следует использовать для изменения конфигурации моего сервера?

1 Ответ

0 голосов
/ 08 октября 2019

Существует целый пример использования шифрования: https://github.com/open62541/open62541/blob/master/examples/encryption/server_encryption.c

Всегда проверяйте каталог примеров любого проекта с открытым исходным кодом. Там вы найдете много хороших примеров кода.

Вот фрагмент кода здесь:

    /* Load certificate and private key */
    UA_ByteString certificate = loadFile(argv[1]);
    UA_ByteString privateKey = loadFile(argv[2]);

    /* Load the trustlist */
    size_t trustListSize = 0;
    if(argc > 3)
        trustListSize = (size_t)argc-3;
    UA_STACKARRAY(UA_ByteString, trustList, trustListSize);
    for(size_t i = 0; i < trustListSize; i++)
        trustList[i] = loadFile(argv[i+3]);

    /* Loading of a issuer list, not used in this application */
    size_t issuerListSize = 0;
    UA_ByteString *issuerList = NULL;

    /* Loading of a revocation list currently unsupported */
    UA_ByteString *revocationList = NULL;
    size_t revocationListSize = 0;

    UA_Server *server = UA_Server_new();
    UA_ServerConfig *config = UA_Server_getConfig(server);

    UA_StatusCode retval =
        UA_ServerConfig_setDefaultWithSecurityPolicies(config, 4840,
                                                       &certificate, &privateKey,
                                                       trustList, trustListSize,
                                                       issuerList, issuerListSize,
                                                       revocationList, revocationListSize);
...