Для того, чтобы использовать webView.ewo совместно с SSL вам нужно либо купить SSL-сертификат, либо создать центр сертификации (ЦС), импортировать корневой центр сертификации в Windows и выдать сертификат.
Создание центра сертификации OpenSSL и выдача сертификатов:
- Создайте Центр сертификации (ЦС). Чтобы создать центр сертификации, необходимо создать секретный закрытый ключ. Создайте закрытый ключ следующим образом:
Команда:
openssl genrsa -aes256 -out ca-key.pem 2048
Создайте корневой центр сертификации
- Для ЦС существует секретный ключ. Необходимо создать корневой сертификат. Корневой сертификат должен быть импортирован клиентами, чтобы сертификаты, выданные центром сертификации, были признаны действительными в браузере. Создайте корневой сертификат «root-cert.pem» с помощью следующей команды (может быть запрошен пароль для ранее созданного ключа):
Команда:
openssl req -x509 -new -nodes -extensions v3_ca -key ca-key.pem -days 1024 -out root-cert.pem -sha512
ВНИМАНИЕ
Если файл «openssl.cnf» не найден при выполнении команд и отображается следующее сообщение:
ВНИМАНИЕ: не удается открыть конфигурационный файл: ../output/../output/ssl/openssl.cnf
не удалось загрузить конфигурационную информацию из ../output/../output/ssl/openssl.cnf
- Для разрешения данной проблемы существует два варианта:
введите «config» и путь к конфигурации следующим образом:
config «c:/Sibcom/Automation/KASKAD/3.17/bin/openssl.cnf»
или
путем обновления глобальной переменной пути:
set OPENSSL_CONF=C:\Sibcom\Automation\KASKAD\3.17\bin\openssl.cnf
Нижеприведённая информация актуальна только для корневого ЦС. Эта информация предназначена для эмитента, а не для клиента.
Country Name (2 letter code) [AU]:AT
State or Province Name (full name) [Some-State]:Burgenland
Locality Name (eg, city) []:Eisenstadt
Organization Name (eg, company) [Internet Widgits Pty Ltd]:sdigital.ru
Organizational Unit Name (eg, section) []:IT
Common Name (eg, YOUR name) []:sdigital.ru
Email Address []:sslmaster@sdigital.ru
Импортируйте корневой сертификат клиентам (Windows)
ВНИМАНИЕ
В Linux можно использовать только файловые сертификаты. Таким образом, вам не нужно импортировать сертификаты под Linux. Скопируйте созданные сертификаты в каталог «config» проекта.
- Импортируйте корневой сертификат клиентам. Вы можете импортировать корневой центр сертификации непосредственно через браузер или глобально через хранилище сертификатов на компьютере. Откройте хранилище сертификатов Windows через меню Пуск – см. рисунок ниже. Вы также можете открыть хранилище сертификатов Windows с помощью команды mmc в командной строке – см. раздел Хранилище сертификатов Windows.
Рисунок: как открыть хранилище сертификатов Windows
- Импортируйте корневой сертификат центра сертификации, а затем клиентский сертификат (открытый ключ «certificate.pem»), как показано на рисунке ниже.
Рисунок: импорт корневого сертификата
Выдача нового сертификата.
- Теперь вы можете создать новый сертификат хоста. В этом примере все шаги выполняются из одного каталога. В приведенном примере будет использоваться центр сертификации, подготовленный ранее. Как и для центра сертификации, для сертификата требуется закрытый ключ.
КОМАНДА:
openssl genrsa -out privkey.pem 4096
ПРИМЕЧАНИЕ
Теперь можно указать пароль. Если указан пароль, то веб-сервер будет каждый раз его запрашивать.
Запрос сертификата
- Теперь необходимо создать запрос сертификата. Для запроса требуются некоторые атрибуты (название страны, название штата или провинции, название населенного пункта, название организации, название организационной единицы, общее имя и адрес электронной почты).
ВНИМАНИЕ
Поле «Common Name» сертификата должно содержать имя сервера, для которого сертификат должен быть действителен. Добавьте в поле «Common Name» имя сервера. Имя сервера может быть полным доменным именем или именем хоста, например: abcd.001.sdigital.ru или также, например, localhost. Чтобы проверить имя сервера, используйте отладчик WebEngine. Отладчик WebEngine открывается автоматически при открытии WebViewEwo, если задать атрибуту «webInspector» значение TRUE в редакторе свойств.
Рисунок: отладчик WebEngine.
Пароль «Challenge password» не должен быть установлен (поле следует оставить пустым)
КОМАНДА:
openssl req -new -key privkey.pem -out certificate.csr -sha512
Введите всю необходимую для запроса сертификата информацию.
Как только файл запроса сертификата «certificate.csr» готов, ЦС может его обработать. Таким образом генерируется открытый ключ для требуемого сертификата. Открытый ключ необходим вместе с закрытым ключом сертификата для шифрования.
Используйте следующую команду для создания открытого ключа (сертификата) «certificate.pem», который действителен в течение 365 дней.
КОМАНДА:
openssl x509 -req -in certificate.csr -CA root-cert.pem -CAkey ca-key.pem -CAcreateserial -out certificate.pem -days 365 -sha512
Будет запрошен пароль для ЦС. Запрос сертификата «certificate.csr» можно удалить, так как он больше не требуется. Теперь в системе доступны закрытый и открытый ключи нового сертификата (privkey.pem и certificate.pem), а также закрытый и открытый ключи ЦС (ca-key.pem und root-cert.pem).
Импорт сертификата «certificate.pem» через хранилище сертификатов Windows:
- Импортируйте открытый ключ «certificate.pem» с помощью меню «Certificates -> Personal -> Certificates -> All tasks -> Import» (см. рисунок «Импорт корневого сертификата»).
Запуск проекта и webView.ewo
- Проверьте, что ваши сертификаты (закрытый и открытый ключи нового сертификата «privkey.pem» и «certificate.pem»), а также закрытые и открытые ключи ЦС («ca-key.pem» и «root-cert.pem») находятся в каталоге «config» проекта.
- Запустите свой проект и сценарий webclient_http.ctl. Теперь вы можете запустить WebView.ewo. На рисунке ниже представлена запущенная панель start.pnl: путь_КАСКАД/panels/examples/js.
Рисунок: WebView.ewo