Π
αα αααα»αααα·ααααα ααΎαααααΌαααΆαααααΎα±αααααααααΆαααααΆααααααΆαααααΆαααΈααααααααΆαααΌαα αααα»ααααααΆααααΈαα»α - nginx αα·α Apache α
α’αααααΆααα½α - ααΎαααΆααααααα
ααΎα’αααααααΌαααΆαα’αααΈααααααΎααααΈα αΆααααααΎα?
- ααΆαα ααα αΆαααΈαα»α ααααΎαααΆαα½αα αααα»αααΆαααααΎααΆαααΆαααααααΎ MX Linux 18.2_x64α ααααα·ααααααΆααΆαα ααα αΆααααΆαααΈααααα ααα»ααααααααααΆαα·αααΆαααΆααα»αααααΆααΆαα½ααααααΆαα Debian ααα αααααΆααααΆαα ααα αΆααααααααα ααααΌααα ααΆαααααααΆαααααααααα ααΆααααααααα’αΆα αα»αααααΆααααα·α ααααα½α α
- αααααΆαααααΆααα ααΎαααααααααΎααααΌ
Rutoken EDS PKI αααβααα’βαααααΆααβααααααβααααΏαβαααααΆααβααΆαβααααΎααααΆααβααΆααΈαααααα - ααΎααααΈααααΎααΆαααΆαα½ααααααΆαααααΆαααα
αααα»αααΈαα»α
α’αααααααΌαααα‘αΎααααα
ααααΆααααααα
libccid libpcsclite1 pcscd pcsc-tools opensc
ααΆαα αααα·ααααΆαααααα
αα
αααα»αα’ααααααα»α ααΎαααΉαααα’ααααΎααΆααα·ααααααΆαααΆαααΈααα αα·ααα·ααααΆααααααα’αα·αα·ααααΉαααααΌαααΆαα
αααααααααΎ Microsoft CA α ααα»ααααα
αΆααααΆααααΈααΎααααα»ααααα
αα’αααΈααααααααΆααα
αααα»αααΈαα»α
ααΎαααααΉαααααΆααα’αααα’αααΈαα·ααΈαααα½αααΎααααΈα
αααα·ααααΆααααααααΆααααα - ααααα·αα
αΆαααΆα
αα
αΆαα
ααααΈααΈαα»α
α
ααΎαααΉαααααΎ XCA ααΆ CA (
ααΆαα αΆααααααΎα
- ααα‘αΎαα
$ apt-get install xca
- α αΎαααΎααααα
$ xca
- ααΎααααααΎαααΌαααααΆααα·ααααααααααααΎααααααΆαα CA - /root/CA.xdb
ααΎαααΌααααααα’αα»ααΆαααα±αααααααΆαα»αααΌαααααΆααα·ααααααα’αΆααααΆαααα·ααααΆαααααααα αααα»ααααααααΆαααα’ααααααααααααααα»ααααααααα’αΆα α αΌαααααΎααΆαα ααΆααΆαααΆααααααΆααααΆαααααα»αααΆαααΆαααΆαααα―ααααααα·ααααΆαααααα root αααααααΌαααΆαααααΎααΎααααΈα α»αα αααααααΆααΎαα·ααααΆααααααααααααααααΆααα’ααα
αααααΎαααΌααα αα·ααα·ααααΆαααααα CA ααΆ root
α αααααΆαα ααΆααααααααααααΆααΆααα (PKI) ααΊααα’ααααΎααααααααααΆααΆαα»ααααα ααΏαααααΆαααα αααα»ααααααααααααααΊα’αΆααααΆαααααααΆααααΆ root α¬ root CA α αα·ααααΆααααααααααααΆααααΌαααααααΌαααΆααααααΎαααΆαα»ααα·αα
- ααΎααααααΎαααα―ααα RSA-2048 αααααΆαα CA α ααΎααααΈααααΎααΌα ααααα ααΎααααΆαα ααα―ααα Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ααααααΈα α αΎαααααΎαααΎαααααααααααααα
- αααααααααααααααΆααααΌααααααΈα αααα»αααΆαα α ααΆααΆ CA Key α
- ααΎαα αααα·ααααΆαααααα CA ααααααα½αα―α αααααααΎααΌαααααααΆααααααΎαα ααΎααααΈααααΎααΌα αααα αΌααα ααΆααααααΆαα αα·ααααΆααααααα α αΎαα α»α αα·ααααΆααααααααααΈα.
- ααααΌαααααΆααααΆααααΎαααΎα SHA-256ααΈαααααααΆαααααΎααααΆαα SHA-1 αα·αα’αΆα α αΆαααα»αααΆααΆααα»ααααα·ααΆααααααα
- ααααΌαααααΆααααΆααααΎαααΎαααΆααααΌ [ααααΆαααΎα]CA. αα»αααααα α α»α ααΎ α’αα»ααααααΆααα’αααααΎαα·αααΌα αααααα ααααΌαα·αααααΌαααΆαα’αα»ααααααα
- αα αααα»αααααΆαα αααααΆααα ααααΎαααΎαααΌααααΆααααααααΎαα αα ααΈαααα’αααα’αΆα αααααααΆαααααΆαααααΆααα’αααααα·ααααΆααααααα
ααΆααααααΎαααΌααα αα·ααα·ααααΆαααααααααΆαααΈααα https
- ααΆαααααααααααααααΆααα ααΎααααααΎαααΌαααα―ααα RSA-2048 αααααΆαααααΆαααΈααα αααα»αααΆαα α ααΆααΆ Server Key α
- αα ααααααααΎααα·ααααΆαααααα ααΎαααααΎαααΎαααΆαα·ααααΆαααααααααΆαααΈαααααααΌαααα α»αα αααααααΆααΆαα½ααα·ααααΆαααααα CA α
- αα»αααααα ααααΎαααΎα SHA-256.
- ααΎαααααΎαααΎαααΆααααΌ [ααααΆαααΎα] HTTPS_server. α α»α ααΎ α’αα»ααααααΆααα’ααα.
- αααααΆαααααα ααΎααααΆαα αααααΆααα ααααΎαααΎαααΌαααααααααΎα α αΎαααααααααα»αααΆααααααααΌαααΆαα
αααααΎαααΌααα αα·ααα·ααααΆαααααααααααΆααα’αααααααΎααααΆαα
- ααα―αααααααα’αααααααΎααΉαααααΌαααΆααααααΆαα»ααα
ααΎαααααΆαααααΆααααααααΎαα ααΎααααΈααααΎααΆαααΆαα½αααΆ α’αααααααΌαααα‘αΎααααααΆααα PKCS#11 ααΈααα αααααααααααΎαα αααααΆααααΆαα
ααα
αΆαααααααα·αα ααΎαα
ααα
αΆααααα
αααααααααααα½α
ααΆααααα
αααααΆαααΈααΆαααα
ααΈααα -
https://www.rutoken.ru/support/download/pkcs/ . ααΎαααααΆαααΆαααα‘αΎααααααΆαα arm64, armv7el, armv7hf, e2k, mipso32el αααα’αΆα ααΆαααααΆαααΈ SDK ααααααΎα -https://www.rutoken.ru/developers/sdk/ . ααααααααΈααΎααΆααα½αααααα»αααααΆαααααΆααααΈαα»α ααΆααααΆαααααα·ααΆααααααΆαα macOS, freebsd αα·α Android αααααα - ααΆαααααααα’ααααααααααααΆ PKCS#11 ααααΈαα XCA α ααΎααααΈααααΎααΌα αααα αΌααα ααΆαααααΊαα»α αααααΎα αα ααααΆαα α’ααααααααααααα PKCS #11.
- ααΎαα α»α αααααα α αΎαααααΎαααΎαααααΌααα ααΆαααααααΆααα PKCS#11α αααα»αααααΈαααααααα»αααΆααΊ usrliblibrtpkcs11ecp.so α
- ααΎαααΉαααααΌαααΆααα·αα·ααααααααΆ Rutoken EDS PKI αααααΆαααααααα ααΆαααα§αααααααααΎααααΆαα rtAdmin -
https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615 - ααΎαα’αα»αααα
$ rtAdmin -f -q -z /usr/lib/librtpkcs11ecp.so -u <PIN-ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>
- ααΎαααααΎαααΎαααααΆααα α»α RSA-2048 αααααΆαα Rutoken EDS PKI ααΆααααααααα αααα»αααΆαα α αααααααΆ Client Keyα
- αααα αΌααααααΌα PIN α α αΎαααΎααααα αΆααααααΆααααΆααααα ααααααΆααααααΎααααααααΉαααααΌαααααΉα
- ααΎααααααΎααα·ααααΆαααααααααααΆααα’αααααααΎααααΆαααααααΆαααααααααααΆααΆαα½ααα·ααααΆαααααααααΆαααΈαααα ααΎααααααΎαααααΎαααΎαααααΌ [ααααΆαααΎα] HTTPS_client α αΎααα»αααααα α α»α α’αα»ααααααΆααα’ααα.
- αα αααα»αααααΆαα αααααΆααα αααα αΌαααααααΆαα’αααΈα’αααααααΎααααΆααα ααΎαααααΎααα αααα»αααΆααααααΆααα ααααααααΎααΎααααΈαααααΆαα»ααα·ααααΆαααααααααααΆαααααααΆαααααΆααα
ααΆαααααααα ααΎααααΆαα αα·ααααΆααααααα αα αααα»α XCA α’ααααα½αααααα½αααΆαα’αααΈαα½αααΌα αααα
αααα»ααα αα·ααα·ααααΆααααααα’αααααααΆαααααΊαααααααααΆααααΎααααΈα
αΆααααααΎαααα‘αΎααααΆαααΈαααααααααα½αα―αα
ααΎααααΈααααααα ααΆαααααααα ααΎαααααΌαααΆαα αααα·ααααΆαααααα CA αα·ααααΆαααααααααΆαααΈααα αα·αααα―ααααααΆαααΈαααα
ααΎααααΈααααΎααΌα αααααααΎαααΆαα»αααα ααααΆααα ααΎααααΆαααααααααΌαααααΆαα αααα»α XCA α αΎαα α»α ααΆαααΆαα αα.
Nginx
αααα»αααΉααα·ααααααααΈααααααα‘αΎα αα·αααααΎαααΆααααΆαααΈααα nginx αα - ααΆαα’ααααααααααααααΆααααΎαααααΆαααααααα ααΎα’ααΈαααΊαα·α αα·αααααα·ααΆαααΈα―αααΆαααααΌαααΆαααα α αΌααα·ααΆαααααααα ααΆαααα‘αΎα HTTPS αα·αααΆααααααααααΆααααΈααααααΆαααααααΎαααααΆαααααΆααα
αααααααααααΆααααΆαααααααα ααααααααΆαααΈααααα αααα»α nginx.confα
server {
listen 443 ssl;
ssl_verify_depth 1;
ssl_certificate /etc/nginx/Server.crt;
ssl_certificate_key /etc/nginx/ServerKey.pem;
ssl_client_certificate /etc/nginx/CA.crt;
ssl_verify_client on;
}
ααΆααα·αααααΆαααα’α·ααααααΆαααΆααααααααΆααα’αααααααΆααααααΉαααΆαααααααα
ααΆαααααααα ssl αα
αααα»α nginx α’αΆα
ααααΆααα
ααΈααα -
αααα»αααΉααααααΆαααααααααααααΌαα’αααΈααααααα»αααΆααα½ααααα½αα―αααΆα
- ssl_verify_client - αααααΆααβααΆβαααααααααΆααβααβααΆαβαα»αβα α·αααβαααααΆααβαα·ααααΆααααααβααααΌαβααΆαβαααααααααΆααα
- ssl_verify_depth - αααααααααα ααααααααααααΆαααα·ααααΆααααααα«αααααααα’αΆα αα»αα α·αααααΆααα αααα»ααααααααααΆααα αααααΆααα·ααααΆααααααα’αα·αα·ααααααααΎαααααΌαααΆαα α»αα αααααααΆααααΆαααα ααΎαα·ααααΆααααααα«αααα ααααα ααααΌαααΆαααααααα 1. ααααα·αααΎαα·ααααΆααααααα’αααααααΎααααΆααααααΌαααΆαα α»αα αααααααΆααΎ CA ααααα·αααααα ααα 2 ααααΌααααααααΆαααα αααα»ααααΆαααΆααααααααα α αΎαααΌα αααααα ααΎα
- ssl_client_certificate - αααααΆααααααΌααα ααΆαααα·ααααΆααααααα«ααααααααα»αα α·ααα αααααααΌαααΆαααααΎαα ααααα·αα·αααααΎαααΆαααΏαα»αα α·αααααΎαα·ααααΆααααααααααα’αααααααΎα
- ssl_certificate/ssl_certificate_key - α ααα’α»ααααα αΆαααααΌααα ααΆαααα·ααααΆαααααααααΆαααΈααα / ααΌαααα―αααα
αα»αααααα ααααΎαααΆα nginx -t ααΎααααΈαα·αα·αααααΎαααΆαα·αααΆαααα α»ααααα»αααΆαααααααα α αΎαα―αααΆαααΆααα’ααααΊαα ααΉααααααα α αΎαααΌα αααααα ααΎα
α αΎααααα αΎαααΆααΆααα’αα! ααΌα αααα’αααα’αΆα ααΎαααΆααααα αααΊααΆααααααΆααα
αα·αα·αααααΎαααΆααΆααααΎαααΆααα αααα»α Firefox
αααααΆαααΎαααααΎα’αααΈαααααααααΆαααΆαααααα»ααα
αααα»αααΈαα»α
ααΎαααΉαααααααααΆα’αααααααΎααααΆααααααααΎαααααααΎααΆααα
αααα»αααΈαα»α
ααα (ααααα·αααΎαα½αααααΆαααΈαααΌ α’ααα
αΉα
- αααααΎα Firefox α
- αααααααΆααΆαα αΌααααααααΆααααααΆαααααΆααααΆαα»ααα·αα ααΎαααα½αααΆαααΌαααΆααααα
- αα α’αααΈα α αααΌαα α·ααα # ααΆαα―ααααα αΎαααΎααα α§ααααααα»ααααα·ααΆα...
- ααΎαα α»α αααα»αααΎααααΈαααααααααααα·ααΈαααααΆα§ααααα PKCS#11 ααααΈ α αΎααααααΆααααααΌααα ααΆαα librtpkcs11ecp.so ααααααΎαα
- ααΎααααΈαα·αα·αααααΎαααΆαα·ααααΆααααααα’αΆα ααΎαααΎα α’αααα’αΆα α αΌααα ααΆαα α’αααααααααααααα·ααααΆααααααα. α’αααααΉαααααΌαααΆαααααα»αα±αααααα αΌαααΌα PIN ααααα’αααα αααααΆααααΈααΆααααα αΌαααααΉαααααΌα α’αααα’αΆα αα·αα·αααααΎαα’αααΈαααααΆααα ααΎααααΆαα αα·ααααΆααααααααααα’αααα αα·ααααΆααααααααααααΎαααΈαα·αα·ααααααααΆααΆααααα αΆααααα½αα
- α₯α‘αΌαααααα ααΆαα½ααα·αα·ααααααααΆα Firefox ααααΆααα’αααα±ααααααΎαααΎααα·ααααΆαααααααααααΉαααααΌαααΆαααααΎαααΎααααααΆαααααΆαααΈαααα ααααΎαααΎααα·ααααΆααααααααααααΎαα
- αααααΆαααααΆαααααα½α!
ααΆαβαααα αβααααΌαβααΆαβααααΎβααααβα αΎαβααΌα βαααβα’αααβα’αΆα βααΎαβαα βαααα»αβαααα’α½α βααααΎβαα·ααααΆααααααβααΎαβα’αΆα βαααααΆβαα»αβααΆαβααααΎαβααΎαβααααβααΎαβα αααααΆααααΈααα ααΆααααααααααΎαα αΌααα αααα»ααα·ααααα ααΎαααΉαααααΆαααααααα αΌααααααΆαααααΆαα αα·ααααα αΌαααΌα PIN ααααα’αααααααΎααααΆαααααααααΌαααΆααααααΆααααα‘α»ααααααααΎαααααααααΆαα αααααΆααααΈααΆααααααααααΆαααααααα αααΆαααΈαααααΉααα½α α αΎαααΆα’αααααααΎααααΆαααα½αααΆααΆαα αΌα α αΎαα’ααααα·αα’αΆα αααααΎααα·αααΌαααααααααααΆααααΆααααααααααΆααααΆαααααα ααα»ααααα’αα»ααααΆαα±ααα’αααααααΎααααΆααα αΌααα αααα»αααααΈααααΆαααααα½αααααααΆααααααΆααα
αααααα·ααΈ Apache
ααΌα ααααΆααΉα nginx ααα ααααΆαααααΆααααΆαααα½αααΆααααα αΆαααα»αααΆαααα‘αΎα apache ααα ααααα·αααΎα’ααααα·αααΉαααΈααααααα‘αΎααααΆαααΈαααααα αααααααααα ααααΆααααααααΎα―αααΆαααααΌαααΆαα
α αΎαααΎαα αΆααααααΎααααα α HTTPS αα·αααΆααααααααααΆααααΈααααααΆααααααΎαα
- ααααΌαα’αααααααΌαααααΎα±αα mod_ssl αααααα
$ a2enmod ssl
- α αΎααααααΆααααααΎαααΆαααααα HTTPS ααααΆαααΎαααααααα αααααα
$ a2ensite default-ssl
- α₯α‘αΌααααααΎαααααααα½αα―αααΆαααααααα
ααΆααααααααα /etc/apache2/sites-enabled/default-ssl.conf:
SSLEngine on SSLProtocol all -SSLv2 SSLCertificateFile /etc/apache2/sites-enabled/Server.crt SSLCertificateKeyFile /etc/apache2/sites-enabled/ServerKey.pem SSLCACertificateFile /etc/apache2/sites-enabled/CA.crt SSLVerifyClient require SSLVerifyDepth 10
ααΌα αααα’αααα’αΆα ααΎαααααααααααΆαααΆααααααα’αα»ααααααααααααΆααΆαα½αααααααααααΆαααΆαααααααα αααα»α nginx ααΌα αααααααα»αααΉααα·ααααααααα½αααααα ααΆβααααΈβααααβααα α’αααβαααβα αΆααβα’αΆααααααβααΉαβααααααΆαβαααα’α·αβααΌαβααααΆααααβααβααΆααβα―αααΆαα
α₯α‘αΌαααα ααΎαα αΆααααααΎααααΆαααΈαααααααααΎαα‘αΎααα·αα$ service apache2 reload $ service apache2 restart
ααΌα αααα’αααα’αΆα ααΎα ααΆαααα‘αΎαααΆααααααααααΆααααΈααααααΆαα ααΎαααΆαααΈαααααα αααααααΆαα½α αα·αααΆαα ααΎ Windows α¬ Linux α αααΆααααα’αα·ααααΆαα½αααααα α αΎαααΆαααα‘αΎααααααα·ααΈαα»αααααααΌαα αααΆαααααααα αα 5 ααΆααΈα ααα»αααααΆα αααΎααα·αααΆααΆαααα‘αΎα αα·αααααΎααΆαααΆαα½αααΆααααααααααΆααααΈααααααΆααΊαα·ααΆααα·ααα·αα αααΆααααΆααα αααα»ααααααΉαααΆα’αααααααααααΎαααααΆααααααααΆααααααΆαα αα ααΆααααααα·α α
ααΆαααα’αααααααΎααααΆαααααααΆαα
α»ααααααααα»ααααααααα’αΆα
α
αΌααα½ααααα»αααΆααααααααα·αααα
ααΎα’αααααααΌαααΆαααΆαααααΆααααααΆααααΆαααα‘αΎα TLS ααΆαα½αααΉααα·ααααΆααααααααααα ααΆα GOST 34.10-2012α
-
ααΆα TLS-GOST ααΊα αΆαααΆα αααΆααα
-
αα ααΆααααααααΌαααΆαα½ααααα½ααααααααΆα GOST αα·ααα½αα±ααα αΆααα’αΆααααααααα
α’αααααααΎααααΆαα 44 ααΆααααΆαααααααααα α’αααααααΎααααΆαα α§α¨ ααΆααααααΌαααΆαα αΆαααΆααα
ααααα: www.habr.com