Сертификаты: срок действия — по сроку закрытого ключа (PrivateKeyUsagePeriod)
В ГОСТ-сертификатах ключ подписи действует год–15 месяцев, а сам сертификат — до 15 лет; bj показывал и проверял срок сертификата (например, 06.10.2036 вместо 2027). Теперь справочник профиля ИШ и сертификаты с флешки берут срок ключа (2.5.29.16), если он раньше; срок сертификата показывается рядом. У УЦ — по-прежнему срок сертификата. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -233,8 +233,12 @@ type NSDStoreCert struct {
|
||||
IssuerCN string `json:"issuer_cn"`
|
||||
Serial string `json:"serial"`
|
||||
NotBefore string `json:"not_before"`
|
||||
NotAfter string `json:"not_after"`
|
||||
NotAfter string `json:"not_after"` // до какой даты действует: срок ключа подписи, если он раньше срока сертификата
|
||||
SelfSigned bool `json:"self_signed"`
|
||||
// KeyNotAfter — срок закрытого ключа (PrivateKeyUsagePeriod); CertNotAfter — срок самого сертификата,
|
||||
// если он позже ключа (в ГОСТ-сертификате ключ подписи действует год, сертификат — до 15 лет)
|
||||
KeyNotAfter string `json:"key_not_after,omitempty"`
|
||||
CertNotAfter string `json:"cert_not_after,omitempty"`
|
||||
}
|
||||
|
||||
func nsdStoreFromResult(res map[string]any) []NSDStoreCert {
|
||||
@@ -244,6 +248,13 @@ func nsdStoreFromResult(res map[string]any) []NSDStoreCert {
|
||||
for i := range st {
|
||||
st[i].NotBefore = nsdPrettyDate(st[i].NotBefore)
|
||||
st[i].NotAfter = nsdPrettyDate(st[i].NotAfter)
|
||||
st[i].KeyNotAfter = nsdPrettyDate(st[i].KeyNotAfter)
|
||||
k, kerr := time.Parse("02.01.2006", st[i].KeyNotAfter)
|
||||
c, cerr := time.Parse("02.01.2006", st[i].NotAfter)
|
||||
// у УЦ срок ключа — только для выпуска новых сертификатов; проверять им можно весь срок сертификата
|
||||
if kerr == nil && !st[i].SelfSigned && (cerr != nil || k.Before(c)) {
|
||||
st[i].CertNotAfter, st[i].NotAfter = st[i].NotAfter, st[i].KeyNotAfter
|
||||
}
|
||||
}
|
||||
return st
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user