ะ
ืืืขืจืืช ืืชืืงืฉื ื ืืืชืื ืืืจืืืช ืืฉืจืชื ืืืื ืืจื ื ืื ืคืืฆืื ืืืืชืจ ืืืื ืืงืก - nginx ื-Apache.
ืื ืืชื ืฆืจืื ืืื ืืืชืืื?
- ืื ืืคืฆืช ืืื ืืงืก ืืืืจื ืืช. ืขืฉืืชื ืืืืจืช ืืืืงื ื-MX Linux 18.2_x64. ืื ืืืืื ืื ืืคืฆืช ืฉืจืช, ืืื ืื ืกืืืจ ืฉืืืื ืืืืืื ืขืืืจ ืืืืื. ืขืืืจ ืืคืฆืืช ืืืจืืช, ืื ืชืืืื ืืกืคืจืืืช ืืชืฆืืจื ืขืฉืืืื ืืืฉืชื ืืช ืืขื.
- ืึฒืกึดืืืึนื. ืื ื ืืืฉืืืื ืืืฉืชืืฉ ืืืืื
Rutoken EDS PKI , ืฉืืื ืืืืืืื ืืืืื ืช ืืืคืืื ื ืืืืจืืช ืืฉืืืืฉ ืืจืืื ื. - ืืื ืืขืืื ืขื ืืกืืืื ืืืื ืืงืก, ืขืืื ืืืชืงืื ืืช ืืืืืืืช ืืืืืช:
libccid libpcsclite1 pcscd pcsc-tools opensc
ืื ืคืงืช ืชืขืืืืช
ืืืืืจืื ืงืืืืื ืืกืชืืื ื ืขื ืืขืืืื ืฉืชืขืืืืช ืฉืจืช ืืืงืื ืืื ืคืงื ืืืืฆืขืืช Microsoft CA. ืืื ืืืืืื ืฉืื ื ืืืืืจืื ืืื ืืืื ืืงืก, ื ืกืคืจ ืืื ืื ืขื ืืจื ืืืืคืืช ืืื ืคืืง ืืืฉืืจืื ืืื - ืืืื ืืขืืื ืืช ืืื ืืงืก.
ื ืฉืชืืฉ ื-XCA ื-CA (
ืชืืืืช ืืขืืืื
- ืืืชืงืื:
$ apt-get install xca
- ืืื ืื ื ืจืฆืื:
$ xca
- ืื ื ืืืฆืจืื ืืช ืืกื ืื ืชืื ืื ืฉืื ื ืขืืืจ CA - /root/CA.xdb
ืื ื ืืืืืฆืื ืืืืกื ืืช ืืกื ืื ืชืื ืื ืฉื ืจืฉืืช ืืืืฉืืจืื ืืชืืงืืื ืฉืื ืจืง ืืื ืื ืืฉ ืืืฉื. ืื ืืฉืื ืืื ืืืื ืขื ืืืคืชืืืช ืืคืจืืืื ืฉื ืืืฉืืจื ืืืกืืก, ืืืฉืืฉืื ืืืชืืื ืขื ืื ืฉืืจ ืืืืฉืืจืื.
ืฆืืจ ืืคืชืืืช ืืืืฉืืจ CA ืฉืืจืฉ
ืชืฉืชืืช ืืคืชื ืฆืืืืจื (PKI) ืืืืกืกืช ืขื ืืขืจืืช ืืืจืจืืืช. ืืืืจ ืืขืืงืจื ืืืขืจืืช ืื ืืื ืจืฉืืช ืืืฉืืจ ืืฉืืจืฉ ืื ืฉืืจืฉ 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 ืืื ืืจืืืื. - ืืืกืคืช ืกืคืง 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.
- ืชืืืื ื ื ืกื ืืืืื ืก ืืื ืืกืืืื. ืื ืื ื ืืงืืืื ืืช ืืชืืื ื ืืืืช:
- ืื ื ืืืืืช: ืืขืืคืืช # ืคืจืืืืช, ืืื ืื ื ืืืืืื ื ืืืฉืืจื ืืืืื...
- ืื ืื ื ืืืืฆืื ืึดืืขืึนืืืื ืืืืกืืฃ ืื ืื ืืชืงื PKCS#11 ืืืฉ ืืืฆืืื ืืช ืื ืชืื ื-librtpkcs11ecp.so ืฉืื ื.
- ืืื ืืืืืง ืฉืืชืขืืื ืืืืื, ื ืืชื ืืขืืืจ ืื ืื ืื ืืืฉืืจืื. ืชืชืืงืฉ ืืืืื ืืช ื-PIN ืฉืื. ืืืืจ ืงืื ื ืืื, ืืชื ืืืื ืืืืืง ืื ืืฉ ืืืจืืืกืืื ืืืืฉืืจืื ืฉืื ืืืืฉืืจ ืฉืื ื ืืืืกืืืื ืืืคืืข.
- ืขืืฉืื ืืื ื ืื ืขื ืืืกืืืื. Firefox ืืืงืฉ ืืื ืืืืืจ ืืืฉืืจ ืฉืืืืืจ ืขืืืจ ืืฉืจืช. ืืืจ ืืช ืืชืขืืื ืฉืื ื.
- ืจืืื!
ืืืืืจื ืืชืืฆืขืช ืคืขื ืืืช, ืืืคื ืฉื ืืชื ืืจืืืช ืืืืื ืืงืฉืช ืืืืฉืืจ, ืื ื ืืืืืื ืืฉืืืจ ืืช ืืืืืจื ืฉืื ื. ืืืืจ ืืื, ืืื ืคืขื ืฉื ืืื ืก ืืคืืจืื, ื ืฆืืจื ืจืง ืืืื ืืก ืืกืืืื ืืืืืื ืืช ืงืื ื-PIN ืฉื ืืืฉืชืืฉ ืฉืฆืืื ืืืืื ืืขืืฆืื. ืืืืจ ืืืืืช ืืื, ืืฉืจืช ืืืจ ืืืืข ืืืื ืืฉืชืืฉ ื ืื ืก ืืื ื ืืชื ืขืื ืืืฆืืจ ืืืื ืืช ื ืืกืคืื ืืืืืืช, ืืื ืืืื ืืก ืืื ืืช ืืืฉืชืืฉ ืืืฉืืื ืืืืฉื ืฉืื.
ืึทืคึธึผืฉื
ืืืืืง ืืื ืขื nginx, ืืืฃ ืืื ืื ืืืืจื ืืืืืช ืืขืืืช ืืืชืงื ืช ืืคืืฆ'ื. ืื ืืื ื ืืืืข ืืืฆื ืืืชืงืื ืฉืจืช ืืื ืืจื ื ืื, ืคืฉืื ืืฉืชืืฉ ืืชืืขืื ืืจืฉืื.
ืืื ืื ื ืืชืืืืื ืืืืืืจ ืืช ื-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 ืื ืืื ืืงืก, ืืืจืืช ืฉืขื ืืื ืืืืชืจ. ืืืืืจืช ืืคืืคื ืื ืืืจืืช ื-5 ืืงืืช. ืื ืฉืื ืจืืื ืืืฉืืื ืฉืืืืืจื ืืืขืืืื ืขื ืืืืืช ืื-ืืืจืื ืืื ืงืฉื ืืื ืืจืืจื. ืื ื ืืงืืื ืฉืืืืืจ ืฉืื ื ืืคืจืื ืืช ืืืืชืืก ืืื, ืืคืืืช ืืืขื.
ืจืง ืืฉืชืืฉืื ืจืฉืืืื ืืืืืื ืืืฉืชืชืฃ ืืกืงืจ.
ืืื ืืชื ืฆืจืื ืืืจืืืช ืืืืืจืช TLS ืขื ืืืฉืืจืื ืืคื GOST 34.10-2012:
-
ืื, TLS-GOST ื ืืืฅ ืืืื
-
ืื, ืืืื ืื ืขื ืืืืืจืืชืื GOST ืืื ื ืืขื ืืื
44 ืืฉืชืืฉืื ืืฆืืืขื. 9 ืืฉืชืืฉืื ื ืื ืขื.
ืืงืืจ: www.habr.com