Мог быть то, что Вы используете клиентские сертификаты с неправильным ключевым использованием. Проверьте, что Ваше ключевое использование имеет:
При использовании расширенного ключевого использования проверьте на
На стороне сервера проверяют, что у Вас есть весь сертификат CA, который использовался для подписания клиентского сертификата, и соответствующая pki иерархия настраивается. В типичной апачской установке это было бы похоже:
<VirtualHost *:443>
ServerAdmin admin@example.net
DocumentRoot /var/www/
ServerName service.example.net
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
</Directory>
SSLEngine on
SSLOptions +StdEnvVars
SSLCertificateFile /usr/local/ssl/certs/Server.crt
SSLCertificateKeyFile /usr/local/ssl/private/Server.key
SSLCACertificateFile /usr/local/ssl/certs/caRoot.cacert.pem
SSLVerifyClient require
ErrorLog logs/service.example.net-443-error_log
LogLevel info
CustomLog logs/service.example.net-443-access.log combined
Наконец, можно попробовать отладку старым добрым openssl
openssl s_client -connect server.example.net:443 -CAfile ../ca/caRoot.crt -cert client-Access.crt -key client-Access.key -showcerts
или завихрение
curl -kv --key client-Access.key --cert client-Access.crt --cacert ../ca/caRoot.crt https://server.example.net/
Удачи!
Да.
Системная аутентификация в системах Linux и UNIX десятилетиями осуществляется через PAM, подключаемые модули аутентификации.
Принцип PAM заключается в том, что если вы хотите использовать новый сервер аутентификации, вам не нужно перекомпилировать все приложения, использующие аутентификацию, такие как системная аутентификация, ssh, ftp, telnet sudo и т. Д. Просто загрузите правильный модуль и все остальное. который использует PAM, может автоматически использовать новый сервер аутентификации.
Итак, если ваши приложения используют PAM (а многие, многие так и делают), и он либо уже существует, либо вы можете создать модуль PAM для своего альтернативного пользователя / хранилища аутентификации, вы » повторно сделано.
pam-pgsql - один из таких модулей PAM, который использует таблицу в базе данных PostGres SQL. Это также упростило бы интеграцию с веб-приложением,
LDAP действительно делает три вещи на Linux-машинах:
Аутентификация:
Это область PAM, это ' s использование имени пользователя / пароля для проверки того, что пользователь является пользователем.
Авторизация:
Здесь PAM не отвечает потребностям, PAM включен / выключен, вы либо получаете одобрение, либо нет. Авторизация касается членства в группе.
Атрибуты:
Где ваш домашний каталог? Как вас зовут?
Последние два элемента обрабатываются серверной частью nss. Если вы заглянете в /etc/nsswitch.conf, то обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.
Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.
Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.
Авторизация:
Здесь PAM не отвечает потребностям, PAM включен / выключен, вы либо получаете одобрение, либо нет. Авторизация касается членства в группе.
Атрибуты:
Где ваш домашний каталог? Как вас зовут?
Последние два элемента обрабатываются серверной частью nss. Если вы посмотрите в /etc/nsswitch.conf, вы обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.
Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.
Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.
Авторизация:
Здесь PAM не отвечает потребностям, PAM включен / выключен, вы либо получаете одобрение, либо нет. Авторизация касается членства в группе.
Атрибуты:
Где ваш домашний каталог? Как вас зовут?
Последние два элемента обрабатываются серверной частью nss. Если вы посмотрите в /etc/nsswitch.conf, вы обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.
Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.
Что касается марионетки, она использует ssl-сертификаты для аутентификации клиента. В чем-то похоже на то, как работает ssh.
PAM включен / выключен, вы либо получаете одобрение, либо нет. Авторизация касается членства в группе.Атрибуты:
Где ваш домашний каталог? Как вас зовут?
Последние два элемента обрабатываются серверной частью nss. Если вы заглянете в /etc/nsswitch.conf, то обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.
Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.
Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.
PAM включен / выключен, вы либо получаете одобрение, либо нет. Авторизация касается членства в группе.Атрибуты:
Где ваш домашний каталог? Как вас зовут?
Последние два элемента обрабатываются серверной частью nss. Если вы посмотрите в /etc/nsswitch.conf, вы обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.
Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.
Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.
ваш домашний каталог? Как вас зовут?Последние два элемента обрабатываются серверной частью nss. Если вы посмотрите в /etc/nsswitch.conf, вы обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.
Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.
Что касается марионетки, она использует ssl-сертификаты для аутентификации клиента. В чем-то похоже на то, как работает ssh.
ваш домашний каталог? Как вас зовут?Последние два элемента обрабатываются серверной частью nss. Если вы посмотрите в /etc/nsswitch.conf, вы обнаружите, что он использует стандартные бэкенды для преобразования системных вызовов в поиск ldap.
Если вы не хотите использовать LDAP, вам нужно будет использовать другую версию библиотек плагинов nss, которые поддерживают базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.
Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.
Вам нужно будет использовать другую версию библиотек подключаемых модулей nss, поддерживающую базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.
Вам нужно будет использовать другую версию библиотек подключаемых модулей nss, которая поддерживает базу данных, которую вы хотите использовать. Некоторые из них существуют, но вы изобретаете довольно большое колесо.Что касается марионетки, она использует сертификаты ssl для аутентификации клиента. В чем-то похоже на то, как работает ssh.
Ваш марионеточный вопрос действительно должен быть другим вопросом, поскольку он на самом деле не связан.
Я подумал о том, о чем вы просите немного больше, и один из способов реализовать то, что вы хотите, - это использовать запрос к базе данных из марионеточного модуля. Поскольку марионеточный язык - это отдельная вещь, а не расширение языка общего назначения, вам, вероятно, придется написать / найти поставщика ресурсов марионетки, который будет возвращать список имен пользователей, а затем марионетку управлять / etc / passwd и т. Д. файлы на машине.
Это было бы проще реализовать в chef. Я уверен, что это возможно в марионетке. Также возможно (и это лучшая практика IMHO) обновить ваш сервер LDAP из записей базы данных. Это действительно зависит от масштаба, в котором вы работаете, и от того, насколько быстро вы хотите, чтобы изменения распространялись.