Можно ли импортировать пользовательский центр сертификации (.crt) с помощью терминала или SSH в macOS 10.13 High Sierra?
В MacOS (High Sierra) можно ли импортировать пользовательский центр сертификации (.crt) с помощью терминала или через SSH?
Да, это.
Добавить сертификат с терминалом
Chrome использует системное хранилище сертификатов связки ключей. Чтобы добавить сертификат CA локально , запустите Терминал и выполните эту команду (я разбил ее на несколько строк, чтобы сделать ее более читаемой, но команда полностью функциональна):
sudo security add-trusted-cert \
-k /Library/Keychains/System.keychain \
-d /path/to/CAcertificate.crt
где:
sudo
запускает следующую команду с правами администратора (при запросе введите пароль для входа в систему)
security
это утилита для управления связками ключей
-k
указывает, какую связку ключей использовать (запустите security list-keychains
, чтобы получить список доступных связок ключей). Обратите внимание, что новые корневые сертификаты должны быть добавлены в цепочку ключей входа для текущего пользователя или в цепочку ключей системы , если они должны использоваться всеми пользователями этой машины, поскольку цепочка ключей корней системы не может быть изменена. В приведенном выше примере я использую связку ключей System.
-d
добавляет сертификат в хранилище сертификатов администратора (чтобы пользователю не приходилось проходить аутентификацию через диалоговое окно аутентификации)
/path/to/CAcertificate.crt
это путь к вашему сертификату ЦС. Команда принимает сертификаты ASCII ( PEM ) и двоичные ( DER ).
(См. man security
для получения дополнительной информации.)
Добавить сертификат через SSH
Чтобы добавить сертификат CA через SSH , используйте эту команду:
ssh -t -t <username>@<remote computer> \
'sudo bash -c "security add-trusted-cert \
-k /Library/Keychains/System.keychain \
-d <(echo \"<your CA certificate in PEM format>\")"'
где:
<your CA certificate in PEM format>
- это содержимое /path/to/CAcertificate.crt
в формате PEM (см. пример ниже).
Обратите внимание, что в этом случае вам придется вводить пароль <username>
дважды: один раз для входа в систему ssh
и один раз для запуска sudo
в удаленной системе.
Пример
Перед импортом сертификата ЦС Chrome отобразит ошибку «NET::ERR_CERT_AUTHORITY_INVALID», поскольку сертификат ЦС не является доверенным:
Допустим, вы храните свой сертификат CA /tmp/SelfSignedCertRootCA.crt
с содержимым:
-----BEGIN CERTIFICATE-----
MIIFVjCCAz4CCQCT7ycH41qc8jANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQGEwJD
SDEOMAwGA1UECAwFQmFzZWwxDjAMBgNVBAcMBUJhc2VsMR0wGwYDVQQKDBRTZWxm
U2lnbmVkQ2VydCwgSW5jLjEfMB0GA1UEAwwWU2VsZlNpZ25lZENlcnQgUm9vdCBD
QTAeFw0xODA5MzAxMDI1MDhaFw0yODA5MjcxMDI1MDhaMG0xCzAJBgNVBAYTAkNI
MQ4wDAYDVQQIDAVCYXNlbDEOMAwGA1UEBwwFQmFzZWwxHTAbBgNVBAoMFFNlbGZT
aWduZWRDZXJ0LCBJbmMuMR8wHQYDVQQDDBZTZWxmU2lnbmVkQ2VydCBSb290IENB
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAy2niOUehGbYdMwg+z7Gx
9I7IefjJS2zVcYzJSHYiL4LhBUDLl0E4QmsOfOuaNP0q1wvhRQAgCC0ZsXVeofhM
DLEbPgdOc8ksBzH1UOboGw99/QsJ9fOs27r227uGKbXp2bstpNB2arl1rAw4litA
QFgfTHCbhVXognwBeUIPU/wZ5ddEmdAa8rt7PnKVSPabT9fXqnWIKOobLyaiB9XT
bd6dHruiqIIMHTCeB90lVdrrKRL0bZJVBj6KVR2yYY8x4xNaDoHS7OBkWkU+rp09
J5LfZJ38u+mA7FOEyxpIgkw5nGeZWdTzjzeio9/oEdfXyJq7PYT/ZskfFODFvBF+
e0Ro9WYbf5H61ywQjAvYW73rfLG8JthldMVu0rVONNl9+dn/bjl5cOicohMLlVkY
w18dIeNDbfsUVN19pfyjG5j0U9LgQ4LZAWkOqIfp8omrTyvXR3UuJhv41W97fXMZ
SZkVdJkbAtBdIGqgNPqxT+5HaeUIEbClDn6n3vOWIOR6kjYi+asGI9U8r29ar6Po
n7btjfNXE/JBUHw7CggKgJiHYXIpaAhUsztKNQSvbPK0g2I4NwtCKpRCiROKdCLC
VRHDJktArbzC9xqtYQ5aZDwFcZN0+5puhGrtUpbcWwmDku3BE4SsKeev5Yo+jgmU
lNi9ramgfGaPmWNGQXuOMA0CAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAtdaQzgOF
VbYPTvTYKa+XOyOwAfGnQhoVuoiC1WVq6y42y8Xh2L7pG95dY1a96rO5+Yzq9Ar5
g5dqbkajOnnIaoZYKu9koutc9flmsaaznR4psa5RX3Zyr3ICdTLrFnxNw+p9RFUJ
b0wQCuQ7b4qLxDzTdvQUiJS2FZMqDiSgmQ3wF6Utb5o7bSe13Y5szMGsc9eUaZfi
QUOm/kFVw/0iRssPsTjfPotLOZmMD5RLVFP5Es8zbU7U8W6z5MsBacMkYm8qCkEt
TIK40wQ29qcsZIxvGEJC1FcvuJBArYVtxm+C1mOVGaSbIxWg3zLE4KUEH1baFkr8
XidjLU3AVLzceJsmtLBDk2tVs9w7SLh1Hw7BEBPRWYyoP7rf0KYQ9ojjZ9UXO88q
802pQDLO6KqSl2BGKD/qei+alENOOVuTO4a6z0mUOrqYtgBJq2LqJRnHZChPdhNW
VJU0XCnSoPNVlv5zD8FVefo6nis9Yv3dNlZzCgFFy6YxGNGxHSCUpFlUV6w7HfVE
MYR4Y68XsZfNzB36/I6LMzab5RlPYJ/cy14HuWrrLNpmH5pRtiusKxxnWIYvHyv4
aUQ6Zs6TjWPk2zgxN4FtyAcslqBrymvYTsItPRYwh5tSBGucCm2RkJypRuOfwxZS
1XG7W3dXrGkrD32aRgJa4vNyLIIdQp1M7ag=
-----END CERTIFICATE-----
Импортируйте его локально в Chrome с помощью этой команды:
sudo security add-trusted-cert \
-k /Library/Keychains/System.keychain \
-d /tmp/SelfSignedCertRootCA.crt
или по SSH (в приведенном ниже примере на удаленную систему с IP-адресом 172.16.96.141) с помощью этой команды:
ssh -t -t jaume@172.16.96.141 \
'sudo bash -c "security add-trusted-cert \
-k /Library/Keychains/System.keychain \
-d <(echo \"-----BEGIN CERTIFICATE-----
MIIFVjCCAz4CCQCT7ycH41qc8jANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQGEwJD
SDEOMAwGA1UECAwFQmFzZWwxDjAMBgNVBAcMBUJhc2VsMR0wGwYDVQQKDBRTZWxm
U2lnbmVkQ2VydCwgSW5jLjEfMB0GA1UEAwwWU2VsZlNpZ25lZENlcnQgUm9vdCBD
QTAeFw0xODA5MzAxMDI1MDhaFw0yODA5MjcxMDI1MDhaMG0xCzAJBgNVBAYTAkNI
MQ4wDAYDVQQIDAVCYXNlbDEOMAwGA1UEBwwFQmFzZWwxHTAbBgNVBAoMFFNlbGZT
aWduZWRDZXJ0LCBJbmMuMR8wHQYDVQQDDBZTZWxmU2lnbmVkQ2VydCBSb290IENB
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAy2niOUehGbYdMwg+z7Gx
9I7IefjJS2zVcYzJSHYiL4LhBUDLl0E4QmsOfOuaNP0q1wvhRQAgCC0ZsXVeofhM
DLEbPgdOc8ksBzH1UOboGw99/QsJ9fOs27r227uGKbXp2bstpNB2arl1rAw4litA
QFgfTHCbhVXognwBeUIPU/wZ5ddEmdAa8rt7PnKVSPabT9fXqnWIKOobLyaiB9XT
bd6dHruiqIIMHTCeB90lVdrrKRL0bZJVBj6KVR2yYY8x4xNaDoHS7OBkWkU+rp09
J5LfZJ38u+mA7FOEyxpIgkw5nGeZWdTzjzeio9/oEdfXyJq7PYT/ZskfFODFvBF+
e0Ro9WYbf5H61ywQjAvYW73rfLG8JthldMVu0rVONNl9+dn/bjl5cOicohMLlVkY
w18dIeNDbfsUVN19pfyjG5j0U9LgQ4LZAWkOqIfp8omrTyvXR3UuJhv41W97fXMZ
SZkVdJkbAtBdIGqgNPqxT+5HaeUIEbClDn6n3vOWIOR6kjYi+asGI9U8r29ar6Po
n7btjfNXE/JBUHw7CggKgJiHYXIpaAhUsztKNQSvbPK0g2I4NwtCKpRCiROKdCLC
VRHDJktArbzC9xqtYQ5aZDwFcZN0+5puhGrtUpbcWwmDku3BE4SsKeev5Yo+jgmU
lNi9ramgfGaPmWNGQXuOMA0CAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAtdaQzgOF
VbYPTvTYKa+XOyOwAfGnQhoVuoiC1WVq6y42y8Xh2L7pG95dY1a96rO5+Yzq9Ar5
g5dqbkajOnnIaoZYKu9koutc9flmsaaznR4psa5RX3Zyr3ICdTLrFnxNw+p9RFUJ
b0wQCuQ7b4qLxDzTdvQUiJS2FZMqDiSgmQ3wF6Utb5o7bSe13Y5szMGsc9eUaZfi
QUOm/kFVw/0iRssPsTjfPotLOZmMD5RLVFP5Es8zbU7U8W6z5MsBacMkYm8qCkEt
TIK40wQ29qcsZIxvGEJC1FcvuJBArYVtxm+C1mOVGaSbIxWg3zLE4KUEH1baFkr8
XidjLU3AVLzceJsmtLBDk2tVs9w7SLh1Hw7BEBPRWYyoP7rf0KYQ9ojjZ9UXO88q
802pQDLO6KqSl2BGKD/qei+alENOOVuTO4a6z0mUOrqYtgBJq2LqJRnHZChPdhNW
VJU0XCnSoPNVlv5zD8FVefo6nis9Yv3dNlZzCgFFy6YxGNGxHSCUpFlUV6w7HfVE
MYR4Y68XsZfNzB36/I6LMzab5RlPYJ/cy14HuWrrLNpmH5pRtiusKxxnWIYvHyv4
aUQ6Zs6TjWPk2zgxN4FtyAcslqBrymvYTsItPRYwh5tSBGucCm2RkJypRuOfwxZS
1XG7W3dXrGkrD32aRgJa4vNyLIIdQp1M7ag=
-----END CERTIFICATE-----\")"'
Теперь перезагрузите сайт. Ошибка исчезла:
и сертификат указан в цепочке ключей системы: