Перевыпуск просроченного сертификата на OpenVPN-сервере
OpenVPN - бесплатное программное решение для реализации подключений по протоколу VPN к виртуальным частным сетям, создания шифрованных туннелей между сервером и клиентскими компьютерами или подключения типа точка-точка для безопасной передачи данных через Интернет.
При подключении к OpenVPN-серверу неожиданно стала появляться ошибка
1
2
3
4
5
Mon Nov 19 05:42:24 2018 VERIFY ERROR: depth=1, error=certificate has expired: C=RU, ST=ru, L=Moscow, O=Domain, CN=Domain CA, emailAddress=[email protected]
Mon Nov 19 05:42:24 2018 OpenSSL: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Mon Nov 19 05:42:24 2018 TLS_ERROR: BIO read tls_read_plaintext error
Mon Nov 19 05:42:24 2018 TLS Error: TLS object -> incoming plaintext read error
Mon Nov 19 05:42:24 2018 TLS Error: TLS handshake failed
После анализа выяснялось, что срок действия сертификата центра сертификации (ca.crt) OpenVPN сервера истек.
Для устранения этой ошибки перевыпускаем самоподписанный сертификат центра сертификации
1
2
$ sudo openssl x509 -in ca.crt -days 3650 -out ca-new.crt -signkey ca.key
Getting Private key
где
ca.crt
- просроченный сертификатca-new.crt
- новый сертификатca.key
- ключ сертификата3650
- срок действия, в днях
Старый файл сертификата ca.key
можно удалить, новый (ca-new.crt
) переименовать в ca.crt
Проверяем
1
2
$ sudo openssl verify -CAfile ca.crt client-username.crt
client-username.crt: OK
Далее, перевыпускаем сертификат сервера
1
2
3
$ cd ../
$ sudo . ./vars
$ sudo ./build-key-server server
и перезапускаем OpenVPN
1
$ sudo service openvpn restart
Теперь, что бы пользователи смогли подключаться к OpenVPN-серверу надо что б они на ПК заменили старый сертификат центра сертификации ca.crt на новый