Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Параметры стенда

ip сервера=10.0.2.15

OS сервера = Ubuntu

...

Info

За основу настройки сервера и клиента была взята эта статья. Для настройки клиента с аутентфикацией по ГОСТу можно можно воспользоваться данной статьей

Настройка сервера

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

...

Code Block
languagebash
titleСоздание ключей и сертификатов
# Генерация сертификата и ключа УЦ
sudo openssl req -nodes -new -days 365 -newkey rsa:2048 -x509 -keyout cakey.pem -out cacert.pem

# Генерация ключевой пары сервера
sudo openssl genrsa -out serverkey.pem 2048
# Генерация заявки на сертификат сервера
sudo openssl req -new -out server.req -key serverkey.pem
# Создание сертификата сервера
sudo openssl x509 -req -in server.req -CAkey cakey.pem -CA cacert.pem -out servercert.pem -CAcreateserial


# Генерация ключевой пары клиента
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type rsa:2048 -l --id 454647
# Генерация заявки на сертификат клиента
openssl
OpenSSL> engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:librtpkcs11ecp.so
...
OpenSSL> req -engine pkcs11 -new -key "pkcs11:id=%45%46%47" -keyform engine -out client.req -subj "/C=RU/ST=Moscow/L=Moscow/O=Aktiv/OU=dev/CN=testuser/emailAddress=testuser@mail.com"

# Создание сертификата клиента
sudo openssl x509 -req -in client.req -CAkey cakey.pem -CA cacert.pem -out clientcert.pem -CAcreateserial
# Импорт сертификата на токен
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w ./clientcert.pem --id 454647

sudo mv serverkey.pem /etc/stunnel/
sudo mv servercert.pem /etc/stunnel/

sudo mv clientcert.pem /var/lib/stunnel4/certs
sudo mv cacert.pem /var/lib/stunnel4/certs

cd /var/lib/stunnel4/certs

# функция получения хеша по содержимому файла
function get_hash()
{
	local file=$1
	openssl x509 -noout -hash -in "$file"
}

# создадим ссылки на сертификаты в нужном формате
sudo ln -s cacert.pem "`get_hash cacert.pem`.0"
sudo ln -s clientcert.pem "`get_hash clientcert.pem`.0"

# запустим сервер stunnel
sudo systemctl restart stunnel4


Настройка Stunnel на клиенте 

Произведем первичную настройку на стороне клиента.

...