Импорт сертификата CA в Chrome через командную строку

Можно ли импортировать пользовательский центр сертификации (.crt) с помощью терминала или SSH в macOS 10.13 High Sierra?

Ответы (1)

В 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-----\")"'

Теперь перезагрузите сайт. Ошибка исчезла:

введите описание изображения здесь

и сертификат указан в цепочке ключей системы:

введите описание изображения здесь