- Filezilla отчетности ” gnutls ошибка -48: нарушение использования ключа в сертификате было обнаружено”
- Filezilla: невозможно подключиться к серверу | вторая жизнь айтишника
- Дёргаем цепочку сертификатов
- Другие виды сертификатов
- Инфраструктура открытых ключей. цепочка корневых сертификатов x509 v.3
- Как решить проблему
- Как установить отозванные
- Открытие filezilla для удаленных адресов
- Ошибка создания подписи: не удается построить цепочку сертификатов 0x800b010a – как исправить
- Проблема устаревших корневых сертификатов. на очереди let’s encrypt и умные телевизоры
- Решение проблемы
- Сложности
- Этот сертификат содержит недействительную цифровую подпись: изменение, повреждение файла уфк
Filezilla отчетности ” gnutls ошибка -48: нарушение использования ключа в сертификате было обнаружено”
это проблема на стороне сервера, и она не появлялась ранее, потому что более ранние версии FileZilla поставлялись с версией GnuTLS, которая не выполняла эту проверку.
цитирую Тим Коссе в FileZilla форум тема:
в любом случае проблема с цепочкой сертификатов X. 509 вашего сервера: либо сам сертификат сервера, либо другой сертификат в цепочке имеет ограничение на использование ключа, которое нарушается. Например сертификат с ограничением использования ключа для подписи не может использоваться для проверки подлинности подключений TLS. См. раздел 4.2.1.3 RFC 5280.
это проблема с генерированием сертификатов Microsoft IIS (но может также произойти, если вы неправильно сгенерировали сертификат другим методом), поскольку это не позволяет сертификатам использоваться для цифровых подписей. OpenSSL гораздо более расслаблен в этом и не подведет из-за этого, поэтому он может работать с другими приложения.
на стороне клиента, вы можете либо отключить TLS, понизить до более ранней версии FileZilla (ни один из них не рекомендуется из-за потенциальных угроз безопасности), или использовать другой клиент, который использует другую библиотеку, такую как OpenSSL на данный момент.
это должно быть сделано на стороне сервера, очевидно. Если вы не являетесь администратором, перешлите им эти инструкции.
согласно сообщению в the форумы IIS, вы можете создать сертификат с помощью PowerShell, а пока проблема не будет устранена корпорацией Майкрософт:
New-SelfSignedCertificate -CertStoreLocation cert:LocalMachineMy -dnsname ftp.example.com
заменить ftp.example.com
на имя хоста вашего сервера.
вы получите отпечатки, понял. Установите пароль для закрытого ключа:
$password = ConvertTo-SecureString -String "password goes here" -Force -AsPlainText
теперь экспортируйте его (вы можете изменить C:cert.pfx
на пути вы хотите сохранить его, просто убедитесь, что он заканчивается .pfx
):
Export-PfxCertificate -cert cert:LocalMachineMyFINGERPRINT -FilePath C:cert.pfx -Password $password
Filezilla: невозможно подключиться к серверу | вторая жизнь айтишника
Всем привет, на линии Айтишник! На днях столкнулся с маленькой неприятностью при входе на сервер. Обычно по фтп входил лишь на работе, все отлично работает, а дома с другого компьютера ни в какую. Многие при входе по FTP ссылаются на туже проблему filezilla «невозможно подключиться к серверу», утверждая, что логин и пароль введены верно на 100%.
В FileZilla при входе на сервер по FTP выдает ошибку:
Статус: Определение IP-адреса для p21180.ftp.ihc.ru
Статус: Соединяюсь с 91.218.229.13:21…
Статус: Соединение установлено, ожидание приглашения…
Статус: Небезопасный сервер, не поддерживает FTP через TLS.
Команда: USER p21180
Ответ: 331 Password required for p21180
Команда: PASS **********
Ответ: 530 Login incorrect.
Ошибка: Критическая ошибка: Невозможно подключиться к серверу
Понятное дело, что ошибка говорит о том, что комбинация логина и пароля не верна. Десять раз перепроверил, не пропускает и все.
Не будем крутиться вокруг да около и приступим сразу к эффективному методу. И так, проблему можно решить, если у Вас есть доступ к аккаунту вашего хостинга. Авторизовываемся и переходим в раздел FTP настроек. Жмем Сменить пароль FTP, сохраняем его.
Вводим новый пароль в FileZilla. Данное решения мне помогло, надеюсь, что информация оказалась полезной и для вас.
Дёргаем цепочку сертификатов
Вчера, видимо, был шабаш https и клиенты стали массово слать сертификаты. Разумеется ни корневых ни промежуточных не прилагалось и просьба их выслать вызывала такое же недоумение как встречный поток у блондинки на дороге с односторонним движением.
На 4-м сертификате дёргать их вручную стало лень (а я ленив по натуре), поэтому набросал «самокат» выцепляющий издателя и формирующий chain-файл для скармливания nginx’у.
Наверняка он не идеален и проверен лишь на полуторадесятках сертификатов, но чем богаты.
Об устройстве x.509 много сказано (в том числе на хабре), поэтому повторяться не буду.
Ниже просто пошаговая инструкция получения цепочки вперемешку с небольшой выжимкой из теории и не более того.
Всё нижесказанное актуально для:
$ uname -or
FreeBSD 10.3-STABLE
$ openssl version
OpenSSL 1.0.2h 3 May 2021
$ `echo $SHELL` --version
tcsh 6.18.01 (Astron) 2021-02-14 (x86_64-amd-FreeBSD) options wide,nls,dl,al,kan,sm,rh,color,filec
$ /usr/local/bin/bash --version
GNU bash, version 4.3.25(1)-release (amd64-portbld-freebsd10.0)
Итак, предположим, что у нас есть PEM-сертификат сайта. Для примера мы возьмём сертфикат ya.ru (не только ж пинговать его).
$ echo | openssl s_client -connect ya.ru:443 | openssl x509 -certopt ca_default -out ya.pem -outform PEM
Помимо самого кодированного запроса, версии, подписи и т.п. в нём имеется ряд расширений. Одно из которых
Authority Information Access
нас и интересует:
$ openssl x509 -in ./ya.pem -noout -text | grep 'Authority Information Access' -A 2
Authority Information Access:
OCSP - URI:http://yandex.ocsp-responder.com
CA Issuers - URI:http://repository.certum.pl/ycasha2.cer
Параметр
CA Issuers
как раз и содержит следующий в цепочке сертификат. Как правило, данный сертификат либо в
PEM
, либо в
DER
(как в нашем случае) форматах.
$ fetch http://repository.certum.pl/ycasha2.cer
На деле
PEM
формат не более чем
base64
представление
DER
и получить
PEM
из
DER
можно сделав
base64 ./ycasha2.cer ./ycasha2.pem
и обрамив кодированный текст
“—–BEGIN CERTIFICATE—–“,”—–END CERTIFICATE—–“
. Однако, логичнее и проще сделать это преобразование средствами
openssl
:
$ openssl x509 -inform der -in ./ycasha2.cer -out ./ycasha2.pem
Едем дальше и смотрим следующий сертификат в цепочке:
$ openssl x509 -in ./ycasha2.pem -noout -text | grep 'Authority Information Access' -A 2
Authority Information Access:
OCSP - URI:http://subca.ocsp-certum.com
CA Issuers - URI:http://repository.certum.pl/ctnca.cer
$ fetch http://repository.certum.pl/ctnca.cer
Преобразовываем и его:
$ openssl x509 -inform der -in ./ctnca.cer -out ./ctnca.pem
В данном сертификате (т.к. он корневой) отсутствует расширение
Authority Information Access
:
$ openssl x509 -in ./ctnca.pem -noout -text | grep 'X509v3 extensions' -A 6
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Subject Key Identifier:
08:76:CD:CB:07:FF:24:F6:C5:CD:ED:BB:90:BC:E2:84:37:46:75:F7
X509v3 Key Usage: critical
Certificate Sign, CRL Sign
То есть на нём и закончим вытягивание цепочки. Осталось собрать это всё в chain-файл:
$ cat ya.pem ycasha2.pem ctnca.pem > chain0.pem
Вроде бы теперь можно ставить (если есть Private Key), но остановлюсь ещё на паре нюансов.
Установив свой сертификат на свой Яндекс проверяем его:
$ echo | openssl s_client -connect ya.ru:443 | grep Verify
Verify return code: 0 (ok)
Всё хорошо, но это лишь потому, что в дефолтных путях
-CApath, -CAfile
моего
openssl
нашлись нужные хеши сертификатов. Если мы их изменим, либо по дефолтным путям их нет, либо они просто устарели, либо у кого-то версия
openssl
с багом, в которой не «цеплялись» default CApath (если не ошибаюсь с 1.0.1с по 1.0.1e), то получим неприятность в виде:
$ echo | openssl s_client -connect ya.ru:443 -CApath . | grep Verify
Verify return code: 20 (unable to get local issuer certificate)
Понятно, что корневой сертификат подписать некому, поэтому нужно нашей системе разрешить доверять ему. Для этого можно создать кусочек хранилища. При поиске требуемого сертифката
openssl
пытается отыскать его по хешу сертификата.
$ openssl x509 -noout -hash -in ./ctnca.pem
48bec511
$ ln -s `pwd`/ctnca.pem `pwd`/48bec511.0
И теперь наша система доверяет ya.ru:
$ echo | openssl s_client -connect ya.ru:443 -CApath . | grep Verify
DONE
Verify return code: 0 (ok)
Разумеется делать руками каждый раз лень, потому слегка автоматизируем:
Выполняем:
$ ./issuers.sh ./ya.pem
0
http://repository.certum.pl/ycasha2.cer
tmp.der 100% of 1196 B 16 MBps 00m00s
IS PEM: [0]
DER(tmp.der) -> PEM(./ya.pem0.pem)
/usr/bin/openssl x509 -inform der -in tmp.der -out ./ya.pem0.pem
1
http://repository.certum.pl/ctnca.cer
tmp.der 100% of 959 B 13 MBps 00m00s
IS PEM: [0]
DER(tmp.der) -> PEM(./ya.pem1.pem)
/usr/bin/openssl x509 -inform der -in tmp.der -out ./ya.pem1.pem
cat ././ya.pem* > chain.pem
Certificate chain:
-rw-r--r-- 1 root wheel 5842 Jun 30 15:46 chain.pem
Сверяем показания:
$ md5 chain0.pem ; md5 chain.pem
MD5 (chain0.pem) = 6d32b0798d48d14764cd26cc4f730444
MD5 (chain.pem) = 6d32b0798d48d14764cd26cc4f730444
Как-то так… Разумеется скрипт не универсален, всё на скорую руку в предверии грандиозного шухера. Комментарии/пожелания приветствуются, но отвечать вряд ли смогу — у нас тут (в Беларуси)
дурдом
деноминация.
Другие виды сертификатов
Напоследок хотелось бы сказать, что помимо обозначенной градации сертификатов — DV, OV, EV — существуют и другие типы сертификатов. Например, сертификаты могут отличаться по количеству доменов, на которые они выдаются. Однодоменные сертификаты (Single Certificate) привязываются к одному домену, указываемому при покупке.
сертификаты (типа Subject Alternative Name, Unified Communications Certificate, Multi Domain Certificate) будут действовать уже для большего числа доменных имен и серверов, но за каждое наименование, включаемое в список сверх обозначенного количества, придется доплачивать отдельно.
Еще существуют поддоменные сертификаты (типа WildCard), которые охватывают все поддомены указанного при регистрации доменного имени. Иногда могут потребоваться сертификаты, которые будут одновременно включать помимо доменов несколько поддоменов.
В таких случаях стоит приобретать сертификаты типа Comodo PositiveSSL Multi-Domain Wildcard и Comodo Multi-Domain Wildcard SSL. Отметим, что в этом случае можно также приобрести обычный мультидоменный сертификат, в котором просто указать необходимые поддомены.
Получить SSL-сертификат можно и самостоятельно: пара ключей для этого получается через любой генератор, например, бесплатный OpenSSL. Такие защищенные каналы связи можно с легкостью использовать для внутренних нужд компании: для обмена между устройствами сети или приложениями.
P.S. Несколько материалов по теме из нашего блога:
Инфраструктура открытых ключей. цепочка корневых сертификатов x509 v.3

Однако потом что-то пошло не так, кто-то оказался не готов, и использование ГОСТ Р 34.10-2001 продлили на 2021 год. Но вдруг все бросились переводить УЦ на ГОСТ Р 34.10-2021, а простых граждан переводить на новые сертификаты. У людей на руках стало по нескольку сертификатов. При проверки сертификатов или электронной подписи стали возникать вопросы, а где взять корневые сертификаты, чтобы установить в хранилища доверенных корневых сертификатов.
Это касается как хранилища сертификатов в Windows, так и хранилища сертификатов в браузерах Firefox и Google Chrome, GnuPG, LibreOffice, почтовых клиентах и даже OpenSSL. Конечно, надо было озаботиться этим при получении сертификата в УЦ и записать цепочку сертификатов на флешку. А с другой стороны у нас же цифровое общество и в любой момент должна быть возможность получить эту цепочку из сети. Как это сделать на страницах Хабра показалsimpleadmin. Однако для рядового гражданина это все же сложновато (особенно, если иметь ввиду, что абсолютное их большинство сидит на Windows): нужно иметь «какой-то» openssl, утилиту fetch, которой и у меня не оказалось на компьютере, и далеко не каждый знает, что вместо нее можно использовать wget. А сколько действий нужно выполнить. Выход конечно есть, написать скрипт, но не просто скрипт поверх openssl и иже с ним, а упакованный в самодостаточный выполняемый модуль для различных платформ.
На чем писать никаких сомнений не было – на Tcl и Python. И начинаем с Tcl и вот почему:
* охренительной вики, где есть даже игрушки (там можно подсмотреть интересное 🙂
* шпаргалки
* нормальные сборки tclkit (1.5 — 2 Мб как плата за реальную кросс-платформенность)
* и моя любимая сборка eTcl от Evolane (бережно сохранённая с умершего сайта 🙁
сохраняют высокий рейтинг Tcl/Tk в моём личном списке инструментария
и, да, wiki.tcl.tk/16867 (мелкий web-сервер с cgi на Tcl, периодически используется с завидным постоянством под tclkit)
а ещё — это просто красиво и красиво 🙂
К этому бы я добавил наличии утилиты
freewrap
, которая нам и поможет собрать автономные (standalone) утилиты для Linux и MS Windows. В результате мы будем иметь утилиту chainfromcert:
bash-4.3$ ./chainfromcert_linux64
Copyright(C)2021
Usage:
chainfromcert <file with certificate> <directory for chain certificate>
Bad usage!
bash-4.3$
В качестве параметров утилите задаются файл с пользовательским сертификатом (как в формате PEM, так и формате DER) и каталог, в котором будут сохранены сертификаты УЦ, входящие в цепочку:
bash-4.3$ ./chainfromcert_linux64 ./cert_test.der /tmp
Loading file: cert_test.der
Directory for chain: .
cert 1 from http://ca.ekey.ru/cdp/ekeyUC2021.cer
cert 2 from http://reestr-pki.ru/cdp/guc_gost12.crt
Goodby!
Length chain=2
Copyright(C) 2021
bash-4.3$
А теперь рассмотрим как работает утилита.
Информация о центре сертификации, выдавшем сертификат пользователю, хранится в расширении с oid-ом 1.3.6.1.5.5.7.1.1. В этом расширении может хранится как о местонахождении сертификата УЦ (oid 1.3.6.1.5.5.7.48.2), так и информация о службе OCSP УЦ (oid 1.3.6.1.5.5.7.48.1):
А информация, например, о периоде использования ключа электронной подписи хранится в расширении с oid-ом 2.5.29.16.
Для разбора сертификата и доступа к расширениям сертификата воспользуемся пакетом pki:
#!/usr/bin/tclsh -f
package require pki
Нам также потребуются пакет base64:
package require base64
Пакет pki, а также подгружаемые им пакет asn, и пакет base64 и помогут нам преобразовывать сертификаты из PEM-кодировки в DER-кодировку, разобрать ASN-структуры и собственно получить доступ к информации о местонахождении сертификатов УЦ.
Работа утилиты начинается с проверки параметров и загрузки файла с сертификатом:
proc usage {use } {
puts "Copyright(C) 2021-2021"
if {$use == 1} {
puts "Usage:nchainfromcert <file with certificate> <directory for chain certificate>n"
}
}
if {[llength $argv] != 2 } {
usage 1
puts "Bad usage!"
exit
}
set file [lindex $argv 0]
if {![file exists $file]} {
puts "File $file not exist"
usage 1
exit
}
puts "Loading file: $file"
set dir [lindex $argv 1]
if {![file exists $dir]} {
puts "Dir $dir not exist"
usage 1
exit
}
puts "Directory for chain: $dir"
set fd [open $file]
chan configure $fd -translation binary
set data [read $fd]
close $fd
if {$data == "" } {
puts "Bad file with certificate=$file"
usage 1
exit
}
Здесь все понятно и отметим только одно – файл с сертификатом рассматривается как бинарный файл:
chan configure $fd -translation binary
Это связано с тем, что сертификат может хранится как в формате DER (двоичный код), так и в формате PEM (base64 — кодировка).
После того как файл загружен вызывается процедура chainfromcert:
set depth [chainfromcert $data $dir]
которая собственно и загружает корневые сертификаты:
proc chainfromcert {cert dir} {
if {$cert == "" } {
exit
}
set asndata [cert_to_der $cert]
if {$asndata == "" } {
#Файл содержит все что угодно, только не сертификат
return -1
}
array set cert_parse [::pki::x509::parse_cert $asndata]
array set extcert $cert_parse(extensions)
if {![info exists extcert(1.3.6.1.5.5.7.1.1)]} {
#В сертификате нет расширений
return 0
}
set a [lindex $extcert(1.3.6.1.5.5.7.1.1) 0]
# if {$a == "false"} {
# puts $a
# }
#Читаем ASN1-последовательность расширения в Hex-кодировке
set b [lindex $extcert(1.3.6.1.5.5.7.1.1) 1]
#Переводим в двоичную кодировку
set c [binary format H* $b]
#Sequence 1.3.6.1.5.5.7.1.1
::asn::asnGetSequence c c_par_first
#Цикл перебора значений в засширении 1.3.6.1.5.5.7.1.1
while {[string length $c_par_first] > 0 } {
#Выбираем очередную последовательность (sequence)
::asn::asnGetSequence c_par_first c_par
#Выбираем oid из последовательности
::asn::asnGetObjectIdentifier c_par c_type
set tas1 [::pki::_oid_number_to_name $c_type]
#Выбираем установленное значение
::asn::asnGetContext c_par c_par_two
#Ищем oid с адресом корневого сертификата
if {$tas1 == "1.3.6.1.5.5.7.48.2" } {
#Читаем очередной корневой сертификат
set certca [readca $c_par $dir]
if {$certca == ""} {
#Прочитать сертификат не удалось. Ищем следующую точку с сертификатом
continue
} else {
global count
#Сохраняем корневой сертификат в указанном каталоге
set f [file join $dir [file tail $c_par]]
set fd [open $f w]
chan configure $fd -translation binary
puts -nonewline $fd $certca
close $fd
incr count
puts "cert $count from $c_par"
#ПОДЫМАЕМСЯ по ЦЕПОЧКЕ СЕРТИФИКАТОВ ВВЕРХ
chainfromcert $certca $dir
continue
}
} elseif {$tas1 == "1.3.6.1.5.5.7.48.1" } {
# puts "OCSP server (oid=$tas1)=$c_par"
}
}
# Цепочка закончилась
return $count
}
К комментариям добавить нечего, но у нас осталась не рассмотренной процедура readca:
proc readca {url dir} {
set cer ""
#Читаем сертификат в бинарном виде
if {[catch {set token [http::geturl $url -binary 1]
#получаем статус выполнения функции
set ere [http::status $token]
if {$ere == "ok"} {
#Получаем код возврата с которым был прочитан сертификат
set code [http::ncode $token]
if {$code == 200} {
#Сертификат успешно прочитан и будет созвращен
set cer [http::data $token]
} elseif {$code == 301 || $code == 302} {
#Сертификат перемещен в другое место, получаем его
set newURL [dict get [http::meta $token] Location]
#Читаем сертификат с другого сервера
set cer [readca $newURL $dir]
} else {
#Сертификат не удалось прочитать
set cer ""
}
}
} error]} {
#Сертификат не удалось прочитать, нет узла в сети
set cer ""
}
return $cer
}
Это процедура построена на использовании пакета http:
package require http
Для чтения сертификата мы используем следующую функцию:
set token [http::geturl $url -binary 1]
Назначение остальных используемых функции понятно из комментариев. Дадим только расшифровку кодов возврата для функции http::ncodel:
200 Запрос успешно выполнен
206 Запрос успешно выполнен, но удалось скачать только часть файла
301 Файл перемещен в другое место
302 Файл временно перемещен в другое место
401 Требуется аутентификация на сервере
403 Доступ к этому ресурсу запрещен
404 Указанный ресурс не может быть найден
500 Внутренняя ошибка
Осталось не рассмотренной одна процедура, а именно cert_to_der:
proc cert_to_der {data} {
set lines [split $data n]
set hlines 0
set total 0
set first 0
#Ищем PEM-сертификат в файле
foreach line $lines {
incr total
if {[regexp {^-----BEGIN CERTIFICATE-----$} $line]} {
if {$first} {
incr total -1
break
} else {
set first 1
incr hlines
}
}
if {[regexp {^(.*):(.*)$} $line ]} {
incr hlines
}
}
if { $first == 0 && [string range $data 0 0 ] == "0" } {
#Очень похоже на DER-кодировку "0" == 0x30
return $data
}
if {$first == 0} {return ""}
set block [join [lrange $lines $hlines [expr {$total-1}]]]
#from PEM to DER
set asnblock [base64::decode $block]
return $asnblock
}
Схема процедуры очень простая. Если это PEM-файл с сертификатом («—–BEGIN CERTIFICATE—– »), то выбирается тело этого файла и преобразуется в бинаоный код:
set asnblock [base64::decode $block]
Если это не PEM-файл, то проверяется это «похожесть» на asn-кодировку (нулевой бит должен быть равен 0x30).
Вот собственно и все, осталось добавить завершающие строки:
if {$depth == -1} {
puts "Bad file with certificate=$file"
usage 1
exit
}
puts "Goodby!nLength chain=$depth"
usage 0
exit
Теперь все собираем в один файл с именем
Проверить работу этого файла можно с помощью интерпретарора tclsh:
$ tclsh ./chainfromcert.tcl cert_orlov.der /tmp
Loading file: cert_test.der
Directory for chain: /tmp
cert 1 from http://ca.ekey.ru/cdp/ekeyUC2021.cer
cert 2 from http://reestr-pki.ru/cdp/guc_gost12.crt
Goodby!
Length chain=2
Copyright(C) 2021
$
В результате работы мы получили цепочку из двух сертификатов в каталоге /tmp.
Но мы хотели получить выполняемые модули для платформ Linux и Windowsи и чтобы пользователи не задумывались о каких-то интерпретаторах.
Для этой цели мы воспользуемся утилитой freewrapTCLSH. С помощью этой утилиты мы сделаем выполняемые модули нашей утилиты для платформ Linux и Windows как 32-х разрядных так и 64-х. Сборку утилит можно проводить для всех платформ на любой из платформ. Извините за тавтологию. Я буду собирать на linux_x86_64 (Mageia).
Для сборки потребуется:
1. Утилита freewrapTCLSH для платформы linux_x86_64;
2. Файл freewrapTCLSH с этой утилитой для каждой платформы:
— freewrapTCLSH_linux32
— freewrapTCLSH_linux64
— freewrapTCLSH_win32
— freewrapTCLSH_win64
3. Исходный файл нашей утилиты: chainfromcert.tcl
Итак, собираемый выполняемый файл chainfromcerty_linuxx86 для платформы Linux x86:
$freewrapTCLSH chainfromcert.tcl –w freewrapTCLSH_linux32 –o chainfromcerty_linuxx86
$
Сборка утилиты для платформы Windows 64-х битного выглядит так:
$freewrapTCLSH chainfromcert.tcl –w freewrapTCLSH_win64 –o chainfromcerty_win64.exe
$
И т.д. Утилиты готовы к использованию. Все необходимое для их работы они вобрали в себя.
Аналогичным образом пишется код и на Python-е.
В ближайшие дни я думаю дополнить пакет fsb795 (а он написан на Python-е) функцией получения цепочки корневых сертификатов.
Как решить проблему
В первую очередь стоит удостовериться, что КС корректно установлен и действителен. Для этого используется стандартный путь: «Пуск» → «Все программы» → «КриптоПро» → «Сертификаты» → «Доверенные центры сертификации» → «Реестр». В открывшемся списке должен быть документ от ПАК «Минкомсвязь России». Если сертификат отсутствует или он недействителен, его нужно установить, следуя алгоритму:
- Открыть загруженный файл на ПК.
- Во вкладке «Общие» кликнуть «Установить».
- Поставить флажок напротив строчки «Поместить в следующее хранилище».
- Выбрать хранилище «Доверенные корневые центры сертификации».
- Продолжить установку кнопкой «ОК» и подтвердить согласие в окне «Предупреждение о безопасности».
После установки появится сообщение, что импорт успешно завершен. Далее рекомендуется перезагрузить компьютер.
Файл выдается удостоверяющим центром вместе с другими средствами для формирования ЭЦП. Если он утерян или удален, следует обратиться в УЦ, в котором был получен СКПЭП.
Если КС Минкомсвязи на месте, но в статусе по-прежнему сказано, что он недействителен, удалите его (выбрать файл и нажать «Удалить») и установите заново.
На форуме CryptoPro CSP предлагается еще один вариант решения проблемы. Но работает он не всегда. Если установка документа не помогла, откройте меню «Пуск» и выполните поиск редактора реестра по его названию regedit. В редакторе найдите и вручную удалите следующие ветки:
Не все ветки могут быть в наличии. Удалите те, что есть, предварительно сохранив их резервные копии в отдельный файл. Перезагрузите ПК и проверьте статус СКЭП — он должен стать действительным.
Важно! Удаление и редактирование ключей реестра может нарушить работоспособность системы, поэтому процедуру лучше доверить техническому специалисту.
Как установить отозванные
В отдельных случаях понадобится установка списка отозванных сертификатов (СОС) в дополнительном порядке. Для этого выполните следующие действия:
- откройте Internet Explorer;
- перейдите в разделе «Сервис» по пути «Свойства» — «Содержание» — «Сертификаты»;
- в подразделе «Имя точки» скопируйте в файл имеющуюся ссылку на список;
- сохраните файл на жестком диске компьютера;
- кликните по этому файлу правой кнопкой мыши для вызова контекстного меню;
- следуйте инструкциям «мастера».
Иногда в перечне списка СОС может быть две ссылки. В этом случае понадобится повторить данный шаг.
После завершения всех действий перезагрузите ваш компьютер. Если все прошло корректно и действия были правильными, то проблем с исправлением ошибок, установкой СОС не возникает. Проблемой здесь может стать только нестабильность сетевого соединения с интернетом.
Если вам понадобилась дополнительная техническая консультация или появилась необходимость оформить ЭЦП любого типа, сделать это можно в УЦ «Астрал-М». Компания имеет аккредитацию Минкомсвязи и предлагает клиентам возможность открытия цифровых подписей любого типа. Обращаясь к нам, вы получаете:
Получить дополнительную информацию можно по телефону, либо оставив запрос на сайте. Мы в течение 5 минут после получения заявки свяжемся с вами для уточнения вопросов. Мы расскажем, как получить электронную подпись и какие документы потребуются для этого.
Открытие filezilla для удаленных адресов
Если ваш брандмауэр настроен правильно, ваш FTP-сервер еще не должен быть доступен для общественности. Чтобы разрешить удаленный доступ, нам придется вручную добавлять правила и исключения брандмауэров для наших портов.
Для этого откройте Брандмауэр Windows в режиме повышенной безопасности приложение на вашем сервере и перейдите к правилам входящих.
Создать Новое правило и выберите порт как тип правила.
На следующем шаге добавьте порты, которые вы установили для FTP и FTPS. В приведенном ниже примере настроены порты по умолчанию 21 и 990. Обновите их, чтобы они соответствовали портам, которые вы настроили ранее.
Идите дальше и нажмите «Далее» в остальных меню и назовите правило брандмауэра. Выбрать финиш создать наше новое правило.
Наш FTP-сервер теперь должен быть доступен удаленно с любого компьютера, которому разрешено подключаться к серверу. На некоторых серверах может потребоваться сделать исключение брандмауэра для самой программы FileZilla. Это будет зависеть от настроек и настроек вашего сервера, но стоит обратить внимание на случай, если у вас возникнут проблемы с удаленным доступом к вашему серверу.
Однако, прежде чем мы сможем войти в систему и протестировать это, мы должны создать пользователя FTP и предоставить общий доступ к папке для FTP.
Ошибка создания подписи: не удается построить цепочку сертификатов 0x800b010a – как исправить
Чтобы исправить ошибку создания подписи: «Не удается построить цепочку сертификатов» (0x800B010A) необходимо правильно диагностировать проблемный сертификат. Сделать это можно с помощью специализированного ПО, либо – с помощью Internet Explorer.
- Следует запустить браузер Internet Explorer. В операционных системах Windows он является предустановленным;
- Открыть меню браузера, нажав на значок шестеренки в верхнем правом углу окна;
- Выбрать пункт «Свойства браузера»;
Альтернативный вариант – зайти в свойства браузера, воспользовавшись встроенным поиском Windows;
Альтернативный вариант – зайти в свойства браузера, воспользовавшись встроенным поиском Windows; - Перейти во вкладку «Содержание»;
- Нажать кнопку «Сертификаты»;
- Выбрать сертификат, которым необходимо подписать документ и нажать кнопку «Просмотр»;
- Перейти во вкладку «Путь сертификации»;
- Сертификат отмеченный красным крестиком или восклицательным знаком – и есть причина возникновения ошибки создания подписи: «Не удается построить цепочку сертификатов» (0x800B010A).
На скриншоте выше показано, как должна выглядеть цепочка. Если один из сертификатов отсутствует или установлен с ошибкой, то подпись документа будет невозможной.
Проблема устаревших корневых сертификатов. на очереди let’s encrypt и умные телевизоры

Чтобы браузер мог аутентифицировать веб-сайт, тот представляет себя действительной цепочкой сертификатов. Типичная цепочка показана сверху, в ней может быть больше одного промежуточного сертификата. Минимальное количество сертификатов в действительной цепочке равно трём.
Корневой сертификат — сердце центра сертификации. Он буквально встроен в вашу ОС или браузер, он физически присутствует на вашем устройстве. Его не поменяешь со стороны сервера. Нужно принудительное обновление ОС или встроенного ПО на устройстве.
Специалист по безопасности Скотт Хельме (Scott Helme) пишет, что основные проблемы возникнут у центра сертификации Let’s Encrypt, потому что сегодня это самый популярный ЦС в интернете, а его корневой сертификат скоро «протухнет». Смена корня Let’s Encrypt назначена на 8 июля 2020 года.
Конечные и промежуточные сертификаты удостоверяющего центра (CA) доставляются клиенту с сервера, а корневой сертификат у клиента уже есть, поэтому с помощью этой коллекции сертификатов можно построить цепочку и аутентифицировать веб-сайт.
Проблема заключается в том, что у каждого сертификата есть срок действия, после чего он нуждается в замене. Например, с 1 сентября 2020 года в браузере Safari планируют ввести ограничение на срок действия серверных TLS-сертификатов максимум 398 дней.
Это значит, что всем нам придётся заменять серверные сертификаты по крайней мере каждые 12 месяцев. Это ограничение распространяется только на сертификаты сервера, оно не распространяется на корневые сертификаты CA.
Сертификаты CA регулируются другим набором правил, поэтому имеют разные ограничения на срок действия. Очень часто встречаются промежуточные сертификаты со сроком действия 5 лет и корневые сертификаты со сроком службы даже 25 лет!
С промежуточными сертификатами обычно нет проблем, потому что они поставляются клиенту сервером, который сам гораздо чаще меняет свой собственный сертификат, так что просто в ходе этой процедуры заменяет и промежуточный. Его довольно легко заменить вместе с сертификатом сервера, в отличие от корневого сертификата CA.
Как мы уже говорили, корневой CA встроен непосредственно в само клиентское устройство, в ОС, в браузер или другое программное обеспечение. Изменение корневого CA веб-сайт не может контролировать. Здесь требуется обновление на клиенте, будь то обновление ОС или софта.
Некоторые корневые CA существуют уже очень давно, речь о 20-25 годах. Скоро некоторые из самых старых корневых CA приблизятся к концу своей естественной жизни, их время почти истекло. Для большинства из нас это вообще не будет проблемой, потому что CA создали новые корневые сертификаты, и они уже много лет распространяются по всему миру в обновлениях ОС и браузеров. Но если кто-то очень давно не обновлял ОС или браузер, это своего рода проблема.
Такая ситуация возникла 30 мая 2020 года в 10:48:38 GMT. Это точное время, когда протух корневой сертификат AddTrust от центра сертификации Comodo (Sectigo).
Он использовался для перекрёстной подписи, чтобы обеспечить совместимость с устаревшими устройствами, в хранилище которых нет нового корневого сертификата USERTrust.
К сожалению, проблемы возникли не только в устаревших браузерах, но и в небраузерных клиентах на базе OpenSSL 1.0.x, LibreSSL и GnuTLS. Например, в телевизионных приставках Roku, сервисе Heroku, в приложениях Fortinet, Chargify, на платформе .NET Core 2.0 под Linux и многих других.
Предполагалось, что проблема затронет только устаревшие системы (Android 2.3, Windows XP, Mac OS X 10.11, iOS 9 и т.п.), поскольку современные браузеры могут задействовать второй корневой сертификат USERTRust. Но по факту начались сбои в сотнях веб-сервисов, которые использовали свободные библиотеки OpenSSL 1.0.x и GnuTLS. Безопасное соединение перестало устанавливаться с выводом ошибки об устаревании сертификата.
Ещё один хороший пример предстоящей смены корневого CA — центр сертификации Let’s Encrypt. Ещё
в апреле 2021 года
они планировали перейти с цепочки Identrust на собственную цепочку ISRG Root, но этого
не произошло
.
«Из-за опасений по поводу недостаточного распространения корня ISRG на устройствах Android мы решили перенести дату перехода к собственному корню с 8 июля 2021 года на 8 июля 2020 года», — сказано в официальном сообщении Let’s Encrypt.
Дату пришлось перенести из-за проблемы, которую называют «распространением корня» (root propagation), а точнее, отсутствием распространения корня, когда корневой CA не слишком широко распространён на всех клиентах.
Сейчас Let’s Encrypt использует перекрёстно подписанный промежуточный сертификат с цепочкой до корня IdenTrust DST Root CA X3. Этот корневой сертификат был выдан ещё в сентябре 2000 года и истекает 30 сентября 2021 года. До этого времени Let’s Encrypt планирует перейти на собственный самоподписанный корень ISRG Root X1.
Корень ISRG выпущен 4 июня 2021 года. После этого начался процесс его утверждения в качестве центра сертификации, который завершился 6 августа 2021 года. С этого момента корневой CA был доступен всем клиентам через обновление операционной системы или программного обеспечения. Всё, что нужно было сделать, — это установить обновление.
Но в этом и проблема.
Если ваш мобильный телефон, телевизор или другое устройство не обновлялось два года — как оно узнает о новом корневом сертификате ISRG Root X1? А если его не установить в системе, то все серверные сертификаты Let’s Encrypt ваше устройство признает недействительными, как только Let’s Encrypt перейдёт на новый корень. А в экосистеме Android много устаревших устройств, которые давно не обновлялись.
Экосистема Android
Вот почему Let’s Encrypt отложил переход к собственному корню ISRG и всё ещё использует промежуточное звено, которое спускается к корню IdenTrust. Но переход в любом случае придётся сделать. И датой смены корня назначено 8 июля 2020 года.
Для проверки, что на вашем устройстве (телевизор, приставка или другой клиент) установлен корень ISRG X1, откройте тестовый сайт https://valid-isrgrootx1.letsencrypt.org/. Если не появляется предупреждение безопасности, то обычно всё в порядке.
Let’s Encrypt не единственный, кому предстоит решить проблему с переходом на новый корень. Криптографию в интернете начали использовать чуть более 20 лет назад, так что как раз сейчас наступает момент окончания действия многих корневых сертификатов.
С такой проблемой могут столкнуться владельцы умных телевизоров, которые много лет не обновляли программное обеспечение Smart TV. Например, новый корень GlobalSign R5 Root выпущен в 2021 году, и после некоторые старые Smart TV не могут построить цепочку к нему, потому что этот корневой CA у них просто отсутствует. В частности, эти клиенты не могли установить защищённое соединение с сайтом bbc.co.uk. Чтобы решить проблему, админам BBC пришлось пойти на хитрость: они построили для этих клиентов альтернативную цепочку через дополнительные промежуточные сертификаты, задействуя старые корни R3 Root и R1 Root, которые ещё не протухли.
www.bbc.co.uk (Leaf) GlobalSign ECC OV SSL CA 2021 (Intermediate) GlobalSign Root CA - R5 (Intermediate) GlobalSign Root CA - R3 (Intermediate)
Это временное решение. Проблема никуда не уйдёт, если не обновить клиентское ПО. Умный телевизор — это по сути ограниченный в функциональности компьютер под Linux. И без обновлений его корневые сертификаты неизбежно протухнут.
Это касается всех устройств, не только телевизоров. Если у вас любое устройство, которое подключено к интернету и которое рекламировали как «умный» девайс, то проблема с протухшими сертификатами почти наверняка касается его. Если устройство не обновляется, то корневое хранилище CA со временем устареет, и в конечном итоге проблема всплывёт на поверхность. Как скоро возникнет проблема, зависит от времени последнего обновления корневого хранилища. Это может быть за несколько лет до даты реального выпуска устройства.
Кстати, в этом проблема, почему некоторые крупные медиаплатформы не могут использовать современные автоматизированные центры сертификации типа Let’s Encrypt, пишет Скотт Хельме. Для умных ТВ они не подходят, и количество корней слишком мало, чтобы гарантировать поддержку сертификата на устаревших устройствах. В противном случае ТВ просто не сможет запустить современные стриминговые сервисы.
Последний инцидент с AddTrust показал, что даже крупные IT-компании бывают не готовы к тому, что у корневого сертификата заканчивается срок действия.
Решение проблемы только одно — обновление. Разработчики умных устройств должны заранее обеспечить механизм обновления программного обеспечения и корневых сертификатов. С другой стороны, производителям невыгодно обеспечивать работу своих устройств по окончании срока гарантии.
Решение проблемы
Шаг № 1. Переводим программу в экспертный режим, который предоставляет доступ к полному перечню функций.
Шаг № 2. Выбираем подозрительный для операционной системы сертификат ЭЦП. Для этого:
- подключаем носитель с цифровой подписью к вашему компьютеру;
- выбираем действующий криптопровайдер и тип носителя;
- выбираем контейнер с цифровой подписью (если на токене их несколько, выбираем проблемный);
- вводим PIN-код для доступа (стандартный пароль для eToken — 1234567890, для Рутокен — 12345678).
Шаг № 3. Добавляем проблемный сертификат в перечень доверенных (именно отсутствие в последнем служит причиной появления ошибки). Для этого:
- перейдите в меню программы «КриптоАРМ»;
- войдите во вкладку «Свойства» конкретного проблемного сертификата (ее можно найти в подразделе «Личное хранилище» раздела «Сертификаты»);
- зайдите во вкладку «Статус»;
- кликните по кнопке «Посмотреть»;
- нажмите «Установить»;
- выберите раздел «Поместить сертификаты в хранилище»;
- нажмите «Обзор» и выберите пункт «Доверенные корневые сертификаты»;
- подтвердите действие.
Сам процесс занимает несколько секунд и требует последующей перезагрузки системы.
Шаг № 4. Финальным этапом остается проверка сертификата по перечню отозванных. Для этого:
- выберите нужный сертификат во вкладке «Свойства сертификата»;
- выберите пункт «По CRL, полученному в УЦ»;
- кликните по кнопке «Проверить».
Теперь можно перейти в личное хранилище, где должна быть обновлена вся информация. Если появилась зеленая галочка, то это признак устранения проблемы и наличия полного доверия со стороны операционной системы к данной ЭЦП.
Сложности
В этот момент начинаются сложности. Сложность первая. Случается, что сертификат пользователя заполнен неправильно, не соответствует требованиям законодательства, в этом случае он должен быть перевыпущен. Как правило, подобную проблему порождает работник УЦ, который неправильно его заполнил, а проблемы получает пользователь, когда не может его нормально использовать.
Сложность вторая. Законодательство говорит о том, что УЦ – это юридическое лицо, и ГУЦ должен подписать сертификат этого УЦ. Ситуация, когда у одного юридического лица несколько комплексов УЦ и несколько сертификатов этих УЦ, толком в законах не прописана.
УЦ этим пользуются, часть сертификатов не подписывают с помощью сертификата ГУЦ и делают их в лучшем случае самовыпущенными – когда цепочку к ГУЦ можно построить только по имени УЦ в сертификате – или вообще самоподписанными – когда связи между сертификатами одного УЦ технически не существует, она есть только на бумаге.
Сложность третья. Если сертификат отозвали, УЦ обязан его добавить в список отозванных сертификатов (СОС), обязанность эта прописывается в RFC, если они приняты как стандарт в стране, или в регламенте ГУЦ, к которому обязаны присоединиться все аккредитованные УЦ.
В случае когда СОС (CRL) большой, УЦ для удобства пользователей выпускает дельта СОС (deltaCRL) с изменениями за короткий период. В регламенте ГУЦ прописана периодичность обновления 12 часов или по факту отзыва сертификатов. В реальности различные УЦ свои СОС публикуют как хотят, существуют некоторые УЦ, которые обновляют их 1 раз в несколько месяцев.
Или же СОС подписывается ключом, который не имеет отношения к сертификату УЦ, что тоже сводит шанс построить цепочку доверия к нулю. Потихоньку возникает проблема с обработкой самих СОС, за время существования УЦ они уже стали достаточно большого размера, но дельта СОС не выпускает почти никто.
Сложность четвертая, связная. Построение цепочки доверия в PKI так или иначе требует наличия связи с УЦ и ГУЦ и работу в онлайне. Работа в офлайне не предусмотрена. Существует ряд мест и приложений, где работа с подписями и сертификатами в офлайне очень бы пригодилась.
Сложность пятая, техническая. Иногда в программно-аппаратных комплексах УЦ все-таки находятся ошибки в логике и реализации, это также может влиять на построение цепочки доверия.
И только если на пути пользователя эти проблемы не встретились, цепочка доверия должна построится. В случае использования OCSP/TSP-служб проблемы тоже существуют, но это тема для отдельной статьи.
Этот сертификат содержит недействительную цифровую подпись: изменение, повреждение файла уфк
Функции УЦ выполняются в территориальных органах Росказны по всей России. Для организации аукционов и размещения информации по закупкам для госнужд в интернете муниципальные и госзаказчики должны заверять отчеты ЭП, полученной в УФК.
Если не удается заверить документ ЭП казначейства , и появляется отметка « Этот сертификат содержит недействительную цифровую подпись », предлагается следующий алгоритм действий:
- Перейти в папку «Личное».
- Выбрать СКЭП, который не работает, и перейти во вкладку «Путь сертификации». В качестве головного УЦ будет указан Минкомсвязи РФ, а промежуточного (подчиненного) — Федеральное казначейство. Нижним звеном в этой цепи будет личный СКЭП держателя.
- Если в поле состояния стоит статус недействительности документа, необходимо отследить всю цепочку и выявить «слабое звено».
- Вернуться в раздел «Общие», чтобы убедиться, верно ли указаны сведения о компании, выпустившей СКЭП.
- Выйти из папки «Личное» и перейти в хранилище «Промежуточные центры сертификации».
Если причина именно в этом звене, на вкладке «Общие» отобразятся сведения: «Этот сертификат не удалось проверить, проследив его до …». Значит на этом участке обрывается путь.