NetWorker. Импорт или замена сертификатов, подписанных центром сертификации, для NMC
Сводка: В этих инструкциях описывается, как заменить самозаверяющий сертификат NetWorker по умолчанию на сертификат, подписанный CA, на сервере NetWorker Management Console (NMC).
Инструкции
В этих инструкциях описывается, как заменить самозаверяющий сертификат NetWorker по умолчанию на сертификат, подписанный CA, для NetWorker Management Console (NMC). В этой статье базы знаний представлены инструкции как для серверов NMC Windows, так и для серверов NMC Linux.
Процесс замены самозаверяющих сертификатов службы аутентификации сервера NetWorker (AUTHC) и веб-интерфейса пользователя NetWorker (NWUI) на сертификаты, подписанные CA, подробно описан в следующих статьях, посвященных конкретным операционным системам:
- NetWorker. Импорт или замена сертификатов, подписанных центром сертификации, для «AUTHC» и «NWUI» (Linux)
- NetWorker. Импорт или замена сертификатов, подписанных центром сертификации, для «AUTHC» и «NWUI» (Windows)
Связанные сертификаты:
-
<server>.csr. Запрос подписи сертификата сервера NetWorker Management Console -
<server>.key. Закрытый ключ сервера NetWorker Management Console -
<server>.crt. Сертификат сервера NetWorker Management Console, подписанный CA -
<CA>.crt. Корневой сертификат CA -
<ICA>.crt. Промежуточный сертификат CA (опционально, если он доступен)
Прежде чем приступить, обратите внимание на следующее.
В этом процессе используется утилита OpenSSL. Эта утилита предоставляется по умолчанию в операционных системах Linux, однако не входит в состав систем Windows. Обратитесь к системному администратору по поводу установки OpenSSL. Требуемая версия OpenSSL различается в зависимости от установленной версии NetWorker.
- Для NetWorker 19.9–19.11 требуется openssl версии 1.1.1n
- NetWorker 19.12.0.0 (только Linux) поддерживает openssl версии 3.0.14
- NetWorker 19.12.0.2 (только для Windows) поддерживает OpenSSL версии 3.0.14.
Версию OpenSSL можно определить следующим образом:
# openssl versionWindows:
- В Проводнике Windows перейдите в папку, где находится openssl.exe. Этот путь может отличаться в зависимости от способа установки OpenSSL.
- Откройте файл openssl.exe и перейдите на вкладку Details. В полеProduct Version указана версия OpenSSL:
Другой вариант: если путь к файлу openssl.exe является частью системной переменной PATH , можно выполнить команду «openssl version» из командной строки с правами администратора. Если каталог, содержащий openssl.exe не является частью системы PATH, измените каталог (cd) на каталог, содержащий openssl.exe.
Создайте закрытый ключ и файл запроса на заверение сертификата (CSR) для предоставления вашему CA.
- На сервере NMC используйте утилиту командной строки OpenSSL, чтобы создать файл закрытого ключа сервера NetWorker (
<server>.key) и файл CSR (<server>.csr).
Linux:
# openssl req -new -newkey rsa:4096 -nodes -out /tmp/<server>.csr -keyout /tmp/<server>.key
Windows:
set openssl="<Full system path to the openssl.exe file>" %openssl% req -new -newkey rsa:4096 -nodes -out "C:\tmp\<server>.csr" -keyout "C:\tmp\<server>.key"
C:\tmp не существует.
- Отправьте файл CSR (
<server>.csr) в CA для создания файла сертификата, подписанного CA (<server>.crt). CA должен предоставить файл сертификата, подписанный CA (<server>.crt), корневой сертификат (<CA>.crt), а также любые промежуточные сертификаты CA<ICA>.crt).
Серверы Linux NetWorker Management Console (NMC):
- Получите подписанные CA сертификаты в отдельных файлах ключей или в одном файле в формате PFX.
- Если подписанные CA сертификаты находятся в одном файле PFX, закрытый ключ и подписанный CA сертификат можно извлечь, используя инструмент OpenSSL (в Windows OpenSSL может отсутствовать, но его можно установить отдельно).
.crt и .key на полные пути к файлам, включая имя файла сертификата и файлы ключей соответственно.
- Извлеките закрытый ключ и сертификат, подписанный CA, из файла PFX.
# openssl pkcs12 -in <file>.pfx -out <server>.key -nodes -nocerts
# openssl pkcs12 -in <file>.pfx -out <server>.crt -nokeys
-
-
- Проверьте целостность
server.keyиserver.crt.
- Проверьте целостность
-
# openssl pkey -in <server>.key -pubout -outform pem | sha256sum
# openssl x509 -in <server>.crt -pubkey -noout -outform pem | sha256sum
-
-
- Преобразуйте закрытый ключ, сертификат сервера, подписанный CA, корневой CA (и любые промежуточные сертификаты) в формат PEM.
-
# openssl rsa -in <server>.key -outform pem -out server.key.pem
# openssl x509 -in <server>.crt -outform pem -out server.crt.pem
# openssl x509 -in CA.crt -outform pem -out CA.crt.pem
# openssl x509 -in ICA.crt -outform pem -out ICA.crt.pem
- Объедините
server.key.pem, корневойCA.crt, промежуточный сертификат (в соответствующих случаях) и подписанный сертификат сервера в файлcakey.pemдля NMC:
# cat server.key.pem CA.crt.pem ICA.crt.pem server.crt.pem > cakey.pem
- На сервере NMC выключите службу
gst:
# systemctl stop gst
- Создайте копию соответствующего файла
cakey.pem, затем замените файл по умолчанию на файл, созданный на шаге 2, D.
# cp /opt/lgtonmc/etc/cakey.pem /opt/lgtonmc/etc/cakey.pem_orig # cp cakey.pem /opt/lgtonmc/etc/cakey.pem
cakey.pem Файл соответствует порту 9001. При замене этого файла комбинированным файлом, созданным на шаге 2, D заменяет самозаверяющий сертификат сертификатом, подписанным CA.
- Создайте копию файлов
server.crtиserver.keyс сервера NMC, затем замените оригинальные файлы подписаннымиserver.crtиserver.key.
# cp /opt/lgtonmc/apache/conf/server.crt /opt/lgtonmc/apache/conf/server.crt_orig # cp <server>.crt /opt/lgtonmc/apache/conf/server.crt # cp /opt/lgtonmc/apache/conf/server.key /opt/lgtonmc/apache/conf/server.key_orig # cp <server>.key /opt/lgtonmc/apache/conf/server.key
- Запустите службу сервера NMC
gst:
# systemctl start gst
- Следите за тем, как
/opt/lgtonmc/logs/gstd.rawза любые ошибки.
NetWorker. Как использовать nsr_render_log для подготовки файла журнала .raw
nsrnmcс 600 Разрешения.
Проверка:
Во время работы службы сервера NMC gst Во время запуска службы выполните следующие действия на сервере NMC:
openssl s_client -connect localhost:9001 -showcerts 2>/dev/null </dev/null openssl s_client -connect localhost:9000 -showcerts 2>/dev/null </dev/null
Пример:
nve:~ # openssl s_client -connect localhost:9001 -showcerts 2>/dev/null </dev/null CONNECTED(00000003) --- Certificate chain 0 s:/C=CA/ST=Ontario/L=Toronto/O=Dell Technologies/OU=DPD/CN=nve.networker.lan i:/C=CA/ST=Ontario/L=Toronto/O=Dell Technologies/OU=DPD/CN=dc.networker.lan ... ... nve:~ # openssl s_client -connect localhost:9000 -showcerts 2>/dev/null </dev/null CONNECTED(00000003) --- Certificate chain 0 s:/C=CA/ST=Ontario/L=Toronto/O=Dell Technologies/OU=DPD/CN=nve.networker.lan i:/C=CA/ST=Ontario/L=Toronto/O=Dell Technologies/OU=DPD/CN=dc.networker.lan ... ... nve:~ #
Серверы Windows NetWorker Management Console (NMC):
- Получите подписанные CA сертификаты в отдельных файлах ключей или в одном файле в формате PFX.
- Если подписанные CA сертификаты находятся в одном файле PFX, закрытый ключ и подписанный CA сертификат можно извлечь, используя инструмент OpenSSL (в Windows OpenSSL обычно отсутствует, но его можно установить отдельно).
.crt и .key на полные пути к файлам, включая имя файла сертификата и файлы ключей соответственно.
- Извлеките закрытый ключ и сертификат, подписанный CA, из файла PFX.
%openssl% pkcs12 -in <file>.pfx -out <server>.key -nodes -nocerts
%openssl% pkcs12 -in <file>.pfx -out <server>.crt -nokeys
-
-
- Проверьте целостность
server.keyиserver.crt.
- Проверьте целостность
-
%openssl% pkey -in <server>.key -pubout -outform pem | %openssl% dgst -sha256
%openssl% x509 -in <server>.crt -pubkey -noout -outform pem | %openssl% dgst -sha256
-
-
- Преобразуйте закрытый ключ, сертификат сервера, подписанный CA, корневой CA (и любые промежуточные сертификаты) в формат PEM.
-
%openssl% rsa -in <server>.key -outform pem -out C:\tmp\server.key.pem
%openssl% x509 -in <server>.crt -outform pem -out C:\tmp\server.crt.pem
- Объедините
server.key.pemиsever.crt.pemвcakey.pemдля NMC. Для этого рекомендуется использовать следующую команду PowerShell:
PS C:\tmp> Get-Content server.key.pem,server.crt.pem | Out-File cakey.pem -Encoding ascii
-Encoding ascii не задано, может наблюдаться следующая проблема: NetWorker. Сервер NMC Windows не запускает службу GSTD после замены сертификатов
- На сервере NMC выключите службу
gst:
net stop gstd
- Создайте копию исходного
cakey.pem, а затем разместите объединенный сертификат, подписанный CA,cakey.pemвместо него:
copy "C:\Program Files\EMC NetWorker\Management\GST\etc\cakey.pem" "C:\Program Files\EMC NetWorker\Management\GST\etc\cakey.pem_orig" copy C:\tmp\cakey.pem "C:\Program Files\EMC NetWorker\Management\GST\etc\cakey.pem"
cakey.pem Файл соответствует порту 9001. При замене этого файла комбинированным файлом, созданным на шаге 2, D заменяет самозаверяющий сертификат сертификатом, подписанным CA.
- Создайте копию файлов
server.crtиserver.keyс сервера NMC, затем замените оригинальные файлы подписаннымиserver.crtиserver.key.
copy "C:\Program Files\EMC NetWorker\Management\GST\apache\conf\server.crt" "C:\Program Files\EMC NetWorker\Management\GST\apache\conf\server.crt_orig" copy "C:\Program Files\EMC NetWorker\Management\GST\apache\conf\server.key" "C:\Program Files\EMC NetWorker\Management\GST\apache\conf\server.key_orig" copy <server>.crt "C:\Program Files\EMC NetWorker\Management\GST\apache\conf\server.crt" copy <server>.key "C:\Program Files\EMC NetWorker\Management\GST\apache\conf\server.key"
- Запустите службу сервера NMC
gst:
net start gstd
- Следите за тем, как
C:\Program Files\EMC NetWorker\Management\GST\logs\gstd.rawза любые ошибки.
NetWorker. Как использовать nsr_render_log для подготовки файла журнала .raw
nsrnmcс 600 Разрешения.
Проверка:
Во время работы службы сервера NMC gst Если служба запущена, выполните следующие действия из PowerShell на сервере NMC, заменив порт. Запустите один раз для порта 9000 и один раз для порта 9001.
param(
[string]$Server = "localhost",
[int]$Port = PORT
)
$tcp = [System.Net.Sockets.TcpClient]::new()
$tcp.Connect($Server, $Port)
# Accept any certificate so we can inspect it (this is inspection only)
$ssl = [System.Net.Security.SslStream]::new(
$tcp.GetStream(),
$false,
{ param($sender, $cert, $chain, $errors) $true }
)
try {
# SNI/target host is the $Server value
$ssl.AuthenticateAsClient($Server)
$remoteCert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($ssl.RemoteCertificate)
# Some keys use CNG and PublicKey.Key can be $null; fall back safely
$keySize = try { $remoteCert.PublicKey.Key.KeySize } catch { $null }
if (-not $keySize) { $keySize = ($remoteCert.PublicKey.EncodedKeyValue.RawData.Length * 8) }
"=== Certificate (from $($Server):$Port) ==="
"Subject : $($remoteCert.Subject)"
"Issuer : $($remoteCert.Issuer)"
"NotBefore : $($remoteCert.NotBefore)"
"NotAfter : $($remoteCert.NotAfter)"
"Public Key : $($remoteCert.PublicKey.Oid.FriendlyName) ($keySize-bit)"
"Signature Algorithm : $($remoteCert.SignatureAlgorithm.FriendlyName)"
}
finally {
$ssl.Dispose()
$tcp.Dispose()
}
Пример:
PS C:\Users\Administrator.NETWORKER> param( >> [string]$Server = "localhost", >> [int]$Port = 9001 >> ) PS C:\Users\Administrator.NETWORKER> PS C:\Users\Administrator.NETWORKER> $tcp = [System.Net.Sockets.TcpClient]::new() PS C:\Users\Administrator.NETWORKER> $tcp.Connect($Server, $Port) PS C:\Users\Administrator.NETWORKER> PS C:\Users\Administrator.NETWORKER> # Accept any certificate so we can inspect it (this is inspection only) PS C:\Users\Administrator.NETWORKER> $ssl = [System.Net.Security.SslStream]::new( >> $tcp.GetStream(), >> $false, >> { param($sender, $cert, $chain, $errors) $true } >> ) PS C:\Users\Administrator.NETWORKER> PS C:\Users\Administrator.NETWORKER> try { >> # SNI/target host is the $Server value >> $ssl.AuthenticateAsClient($Server) >> >> $remoteCert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($ssl.RemoteCertificate) >> >> # Some keys use CNG and PublicKey.Key can be $null; fall back safely >> $keySize = try { $remoteCert.PublicKey.Key.KeySize } catch { $null } >> if (-not $keySize) { $keySize = ($remoteCert.PublicKey.EncodedKeyValue.RawData.Length * 8) } >> >> "=== Certificate (from $($Server):$Port) ===" >> "Subject : $($remoteCert.Subject)" >> "Issuer : $($remoteCert.Issuer)" >> "NotBefore : $($remoteCert.NotBefore)" >> "NotAfter : $($remoteCert.NotAfter)" >> "Public Key : $($remoteCert.PublicKey.Oid.FriendlyName) ($keySize-bit)" >> "Signature Algorithm : $($remoteCert.SignatureAlgorithm.FriendlyName)" >> } >> finally { >> $ssl.Dispose() >> $tcp.Dispose() >> } === Certificate (from localhost:9001) === Subject : CN=win-srvr02.networker.lan, OU=DPD, O=Dell Technologies, L=Toronto, S=Ontario, C=CA Issuer : CN=dc.networker.lan, OU=DPD, O=Dell Technologies, L=Toronto, S=Ontario, C=CA NotBefore : 03/09/2026 15:42:43 NotAfter : 06/11/2028 15:42:43 Public Key : RSA (2048-bit) Signature Algorithm : sha256RSA PS C:\Users\Administrator.NETWORKER> param( >> [string]$Server = "localhost", >> [int]$Port = 9000 >> ) PS C:\Users\Administrator.NETWORKER> PS C:\Users\Administrator.NETWORKER> $tcp = [System.Net.Sockets.TcpClient]::new() PS C:\Users\Administrator.NETWORKER> $tcp.Connect($Server, $Port) PS C:\Users\Administrator.NETWORKER> PS C:\Users\Administrator.NETWORKER> # Accept any certificate so we can inspect it (this is inspection only) PS C:\Users\Administrator.NETWORKER> $ssl = [System.Net.Security.SslStream]::new( >> $tcp.GetStream(), >> $false, >> { param($sender, $cert, $chain, $errors) $true } >> ) PS C:\Users\Administrator.NETWORKER> PS C:\Users\Administrator.NETWORKER> try { >> # SNI/target host is the $Server value >> $ssl.AuthenticateAsClient($Server) >> >> $remoteCert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($ssl.RemoteCertificate) >> >> # Some keys use CNG and PublicKey.Key can be $null; fall back safely >> $keySize = try { $remoteCert.PublicKey.Key.KeySize } catch { $null } >> if (-not $keySize) { $keySize = ($remoteCert.PublicKey.EncodedKeyValue.RawData.Length * 8) } >> >> "=== Certificate (from $($Server):$Port) ===" >> "Subject : $($remoteCert.Subject)" >> "Issuer : $($remoteCert.Issuer)" >> "NotBefore : $($remoteCert.NotBefore)" >> "NotAfter : $($remoteCert.NotAfter)" >> "Public Key : $($remoteCert.PublicKey.Oid.FriendlyName) ($keySize-bit)" >> "Signature Algorithm : $($remoteCert.SignatureAlgorithm.FriendlyName)" >> } >> finally { >> $ssl.Dispose() >> $tcp.Dispose() >> } === Certificate (from localhost:9000) === Subject : CN=win-srvr02.networker.lan, OU=DPD, O=Dell Technologies, L=Toronto, S=Ontario, C=CA Issuer : CN=dc.networker.lan, OU=DPD, O=Dell Technologies, L=Toronto, S=Ontario, C=CA NotBefore : 03/09/2026 15:42:43 NotAfter : 06/11/2028 15:42:43 Public Key : RSA (2048-bit) Signature Algorithm : sha256RSA
Дополнительная информация
Даже после замены самозаверяющего сертификата NMC на сертификат, подписанный CA, во время подключения к серверу NMC из средства запуска NMC может отображаться следующее предупреждение:

Нажмите «View Certificate Details». Сведения о сертификате подтверждают, что используется сертификат, подписанный CA.
Это предупреждение появляется, так как подписанный сертификат отсутствует в списке доверенных корневых сертификатов клиента NMC.
Это предупреждение можно игнорировать; при желании сертификат сервера NMC, подписанный CA, можно также импортировать в список доверенных корневых сертификатов клиента NMC:
- Поместите сертификат сервера NMC, подписанный CA (
<server>.crt) на хосте клиента NMC в папке по вашему выбору. - Откройте свойства сертификата, подписанного CA.
- Нажмите Install Certificate.
- Выберите Local Machine.
- Выберите Place all certificates in the following store.
- Нажмите Browse.
- Выберите Trusted Root Certification Authorities, а затем нажмите OK.
- Нажмите Next.
- Нажмите Finish.
- Появится сообщение о сбое или успешном выполнении импорта, нажмите кнопку OK.
- В свойствах сертификата, подписанного CA, нажмите кнопку ОК.
Во время следующего запуска NMC предупреждение о безопасности не отображается.