17.9. ÐаÑиÑа Ñоединений TCP/IP Ñ Ð¿Ñименением SSL
Ð Postgres Pro вÑÑÑоена поддеÑжка SSL Ð´Ð»Ñ ÑиÑÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑаÑика Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»Ð¸ÐµÐ½Ñом и ÑеÑвеÑом, ÑÑо повÑÑÐ°ÐµÑ ÑÑÐ¾Ð²ÐµÐ½Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑи ÑиÑÑемÑ.
Ðогда в ÑÑÑановленном ÑеÑвеÑе Postgres Pro ÑазÑеÑена поддеÑжка SSL, его можно запÑÑÑиÑÑ Ñ Ð²ÐºÐ»ÑÑÑннÑм меÑ
анизмом SSL, задав в postgresql.conf Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа ssl знаÑение on. ÐапÑÑеннÑй ÑеÑÐ²ÐµÑ Ð±ÑÐ´ÐµÑ Ð¿ÑинимаÑÑ ÐºÐ°Ðº обÑÑнÑе, Ñак и SSL-подклÑÑÐµÐ½Ð¸Ñ Ð² одном поÑÑÑ TCP и бÑÐ´ÐµÑ ÑоглаÑовÑваÑÑ Ð¸ÑполÑзование SSL Ñ ÐºÐ°Ð¶Ð´Ñм клиенÑом. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ Ð²ÑбиÑÐ°ÐµÑ Ñежим подклÑÑÐµÐ½Ð¸Ñ Ñам; как наÑÑÑоиÑÑ ÑеÑвеÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð½ ÑÑебовал иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑолÑко SSL Ð´Ð»Ñ Ð²ÑеÑ
или некоÑоÑÑÑ
подклÑÑений, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑзнаÑÑ Ð² Разделе 19.1.
Postgres Pro ÑиÑÐ°ÐµÑ ÑиÑÑемнÑй Ñайл конÑигÑÑаÑии OpenSSL. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÐ¾Ñ Ñайл назÑваеÑÑÑ openssl.cnf и наÑ
одиÑÑÑ Ð² каÑалоге, коÑоÑÑй ÑообÑÐ°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° openssl version -d. ÐÑли ÑÑебÑеÑÑÑ ÑказаÑÑ Ð´ÑÑгое ÑаÑположение Ñайла конÑигÑÑаÑии, его можно задаÑÑ Ð² пеÑеменной окÑÑÐ¶ÐµÐ½Ð¸Ñ OPENSSL_CONF.
OpenSSL пÑедоÑÑавлÑÐµÑ ÑиÑокий вÑÐ±Ð¾Ñ ÑиÑÑов и алгоÑиÑмов аÑÑенÑиÑикаÑии Ñазной заÑиÑÑнноÑÑи. ХоÑÑ ÑпиÑок ÑиÑÑов Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð´Ð°Ð½ непоÑÑедÑÑвенно в Ñайле конÑигÑÑаÑии OpenSSL, можно задаÑÑ Ð¾ÑделÑнÑе ÑиÑÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ Ð´Ð»Ñ ÑеÑвеÑа баз даннÑÑ
, Ñказав иÑ
в паÑамеÑÑе ssl_ciphers в postgresql.conf.
ÐÑимеÑание
ÐакладнÑе ÑаÑÑ
одÑ, ÑвÑзаннÑе Ñ ÑиÑÑованием, в пÑинÑипе можно иÑклÑÑиÑÑ, огÑаниÑивÑиÑÑ ÑолÑко пÑовеÑкой подлинноÑÑи, Ñо еÑÑÑ Ð¿ÑименÑÑ ÑиÑÑ NULL-SHA или NULL-MD5. Ðднако в ÑÑом ÑлÑÑае поÑÑедник ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑопÑÑкаÑÑ ÑеÑез ÑÐµÐ±Ñ Ð¸ ÑиÑаÑÑ Ð²ÐµÑÑ ÑÑаÑик Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»Ð¸ÐµÐ½Ñом и ÑеÑвеÑом. ÐÑоме Ñого, ÑиÑÑование пÑивноÑÐ¸Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑнÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð¿Ð¾ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿ÑовеÑкой подлинноÑÑи. Ðо ÑÑим пÑиÑинам иÑполÑзоваÑÑ ÑиÑÑÑ NULL не ÑекомендÑеÑÑÑ.
ЧÑÐ¾Ð±Ñ ÑеÑÐ²ÐµÑ Ð¼Ð¾Ð³ ÑабоÑаÑÑ Ð² Ñежиме SSL, ÐµÐ¼Ñ Ð½ÐµÐ¾Ð±Ñ
Ð¾Ð´Ð¸Ð¼Ñ ÑÐ°Ð¹Ð»Ñ Ñ ÑеÑÑиÑикаÑом ÑеÑвеÑа и закÑÑÑÑм клÑÑом. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑо Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑÐ°Ð¹Ð»Ñ server.crt и server.key, ÑооÑвеÑÑÑвенно, ÑаÑположеннÑе в каÑалоге даннÑÑ
, но можно иÑполÑзоваÑÑ Ð¸ дÑÑгие имена и меÑÑÐ¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñайлов, задав иÑ
в конÑигÑÑаÑионнÑÑ
паÑамеÑÑаÑ
ssl_cert_file и ssl_key_file.
Ð Unix-подобнÑÑ
ÑиÑÑемаÑ
к ÑÐ°Ð¹Ð»Ñ server.key должен бÑÑÑ Ð·Ð°Ð¿ÑеÑÑн лÑбой доÑÑÑп гÑÑÐ¿Ð¿Ñ Ð¸ вÑеÑ
оÑÑалÑнÑÑ
; ÑÑÐ¾Ð±Ñ ÑÑÑановиÑÑ Ñакое огÑаниÑение, вÑполниÑе chmod 0600 server.key. Ðозможен и дÑÑгой ваÑианÑ, когда ÑÑим Ñайлом Ð²Ð»Ð°Ð´ÐµÐµÑ root, а гÑÑппа Ð¸Ð¼ÐµÐµÑ Ð´Ð¾ÑÑÑп на ÑÑение (Ñо еÑÑÑ, маÑка ÑазÑеÑений 0640). ÐаннÑй ваÑÐ¸Ð°Ð½Ñ Ð¿ÑедназнаÑен Ð´Ð»Ñ ÑиÑÑем, в коÑоÑÑÑ
Ñайлами ÑеÑÑиÑикаÑов и клÑÑей ÑпÑавлÑÐµÑ Ñама опеÑаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑиÑÑема. Ð ÑÑом ÑлÑÑае полÑзоваÑелÑ, запÑÑкаÑÑий ÑеÑÐ²ÐµÑ Postgres Pro, должен бÑÑÑ Ñленом гÑÑппÑ, имеÑÑей доÑÑÑп к ÑказаннÑм Ñайлам ÑеÑÑиÑикаÑа и клÑÑа.
ÐÑли закÑÑÑÑй клÑÑ Ð·Ð°ÑиÑÑн паÑолем, ÑеÑÐ²ÐµÑ ÑпÑоÑÐ¸Ñ ÑÑÐ¾Ñ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¸ не бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑÑÑ, пока он не бÑÐ´ÐµÑ Ð²Ð²ÐµÐ´Ñн. ÐÑполÑзование Ñакого паÑÐ¾Ð»Ñ Ð»Ð¸ÑÐ°ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи изменÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ SSL без пеÑезагÑÑзки ÑеÑвеÑа. Ðолее Ñого, закÑÑÑÑе клÑÑи, заÑиÑÑннÑе паÑолем, не годÑÑÑÑ Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² Windows.
ÐеÑвÑм ÑеÑÑиÑикаÑом в server.crt должен бÑÑÑ ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа, Ñак как он должен ÑооÑвеÑÑÑвоваÑÑ Ð·Ð°ÐºÑÑÑÐ¾Ð¼Ñ ÐºÐ»ÑÑÑ ÑеÑвеÑа. Ð ÑÑÐ¾Ñ Ñайл Ñакже могÑÑ Ð±ÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ ÑеÑÑиÑикаÑÑ Â«Ð¿ÑомежÑÑоÑнÑÑ
» ÑенÑÑов ÑеÑÑиÑикаÑии. ÐÑо избавлÑÐµÑ Ð¾Ñ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи Ñ
ÑаниÑÑ Ð²Ñе пÑомежÑÑоÑнÑе ÑеÑÑиÑикаÑÑ Ð½Ð° клиенÑаÑ
, пÑи ÑÑловии, ÑÑо коÑневой и пÑомежÑÑоÑнÑе ÑеÑÑиÑикаÑÑ Ð±Ñли ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ñ ÑаÑÑиÑениÑми v3_ca. (ÐÑи ÑÑом в оÑновнÑÑ
огÑаниÑениÑÑ
ÑеÑÑиÑикаÑа ÑÑÑанавливаеÑÑÑ ÑвойÑÑво CA, Ñавное true.) ÐÑо Ñакже ÑпÑоÑÐ°ÐµÑ ÑпÑавление пÑомежÑÑоÑнÑми ÑеÑÑиÑикаÑами Ñ Ð¸ÑÑекаÑÑим ÑÑоком.
ÐобавлÑÑÑ ÐºÐ¾Ñневой ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð² server.crt Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи. ÐмеÑÑо ÑÑого клиенÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ ÑÑÐ¾Ñ ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð² ÑепоÑке ÑеÑÑиÑикаÑов ÑеÑвеÑа.
17.9.1. ÐÑполÑзование клиенÑÑÐºÐ¸Ñ ÑеÑÑиÑикаÑов
ЧÑÐ¾Ð±Ñ ÐºÐ»Ð¸ÐµÐ½ÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±Ñли пÑедоÑÑавлÑÑÑ ÑеÑвеÑÑ Ð´Ð¾Ð²ÐµÑеннÑе ÑеÑÑиÑикаÑÑ, помеÑÑиÑе ÑеÑÑиÑикаÑÑ ÐºÐ¾ÑневÑÑ
ÑенÑÑов ÑеÑÑиÑикаÑии (ЦС), коÑоÑÑм Ð²Ñ Ð´Ð¾Ð²ÐµÑÑеÑе, в Ñайл в каÑалоге даннÑÑ
, ÑкажиÑе в паÑамеÑÑе ssl_ca_file в postgresql.conf Ð¸Ð¼Ñ ÑÑого Ñайла и добавÑÑе паÑамеÑÑ Ð°ÑÑенÑиÑикаÑии clientcert=1 в ÑооÑвеÑÑÑвÑÑÑие ÑÑÑоки hostssl в pg_hba.conf. Ð ÑезÑлÑÑаÑе Ð¾Ñ ÐºÐ»Ð¸ÐµÐ½Ñа в пÑоÑеÑÑе ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ SSL-подклÑÑÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°ÑÑебован ÑеÑÑиÑикаÑ. (Ðак наÑÑÑоиÑÑ ÑеÑÑиÑикаÑÑ Ð½Ð° ÑÑоÑоне клиенÑа, опиÑÑваеÑÑÑ Ð² Разделе 31.18.) ÐолÑÑив ÑеÑÑиÑикаÑ, ÑеÑÐ²ÐµÑ Ð±ÑÐ´ÐµÑ Ð¿ÑовеÑÑÑÑ, подпиÑан ли ÑÑÐ¾Ñ ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð¾Ð´Ð½Ð¸Ð¼ из довеÑеннÑм ÑенÑÑом ÑеÑÑиÑикаÑии.
ÐÑомежÑÑоÑнÑе ÑеÑÑиÑикаÑÑ, коÑоÑÑе ÑоÑÑавлÑÑÑ ÑепоÑÐºÑ Ñ ÑÑÑеÑÑвÑÑÑими коÑневÑми ÑеÑÑиÑикаÑами, можно Ñакже вклÑÑиÑÑ Ð² Ñайл root.crt, еÑли Ð²Ñ Ð½Ðµ Ñ
оÑиÑе Ñ
ÑаниÑÑ Ð¸Ñ
на ÑÑоÑоне клиенÑа (пÑедполагаеÑÑÑ, ÑÑо коÑневой и пÑомежÑÑоÑнÑй ÑеÑÑиÑикаÑÑ Ð±Ñли ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ñ ÑаÑÑиÑениÑми v3_ca). ÐÑли ÑÑÑановлен паÑамеÑÑ ssl_crl_file, Ñакже пÑовеÑÑÑÑÑÑ ÑпиÑки оÑзÑва ÑеÑÑиÑикаÑов (Certificate Revocation List, CRL).
ÐаÑамеÑÑ Ð°ÑÑенÑиÑикаÑии clientcert можно иÑполÑзоваÑÑ Ñ Ð»ÑбÑм меÑодом пÑовеÑки подлинноÑÑи, но ÑолÑко в ÑÑÑокаÑ
pg_hba.conf Ñипа hostssl. Ðогда clientcert не задан или Ñавен 0, ÑеÑÐ²ÐµÑ Ð²ÑÑ Ð¶Ðµ бÑÐ´ÐµÑ Ð¿ÑовеÑÑÑÑ Ð²Ñе пÑедÑÑавленнÑе клиенÑÑкие ÑеÑÑиÑикаÑÑ Ð¿Ð¾ ÑÐ²Ð¾ÐµÐ¼Ñ ÑпиÑÐºÑ Ð¦Ð¡ (еÑли он наÑÑÑоен), но Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ ÐºÐ»Ð¸ÐµÐ½Ñам без ÑеÑÑиÑикаÑа.
ÐÑли Ð²Ñ Ð¸ÑполÑзÑеÑе клиенÑÑкие ÑеÑÑиÑикаÑÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе Ñакже пÑимениÑÑ Ð¼ÐµÑод аÑÑенÑиÑикаÑии cert, ÑÑÐ¾Ð±Ñ ÑеÑÑиÑикаÑÑ Ð¾Ð±ÐµÑпеÑивали не ÑолÑко заÑиÑÑ Ñоединений, но и пÑовеÑÐºÑ Ð¿Ð¾Ð´Ð»Ð¸Ð½Ð½Ð¾ÑÑи полÑзоваÑелей. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 19.3.9. (УÑÑанавливаÑÑ clientcert=1 Ñвно пÑи иÑполÑзовании меÑода аÑÑенÑиÑикаÑии cert не ÑÑебÑеÑÑÑ.)
17.9.2. ФайлÑ, иÑполÑзÑемÑе SSL-ÑеÑвеÑом
РТаблиÑе 17.2 кÑаÑко опиÑÐ°Ð½Ñ Ð²Ñе ÑайлÑ, имеÑÑие оÑноÑение к наÑÑÑойке SSL на ÑеÑвеÑе. (ÐдеÑÑ Ð¿ÑÐ¸Ð²ÐµÐ´ÐµÐ½Ñ ÑÑандаÑÑнÑе или ÑипиÑнÑе имена Ñайлов. РконкÑеÑной ÑиÑÑеме они могÑÑ Ð±ÑÑÑ Ð´ÑÑгими.)
ТаблиÑа 17.2. ФайлÑ, иÑполÑзÑемÑе SSL-ÑеÑвеÑом
| Файл | СодеÑжимое | ÐазнаÑение |
|---|---|---|
ssl_cert_file ($PGDATA/server.crt) | ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа | оÑпÑавлÑеÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ Ð´Ð»Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑии ÑеÑвеÑа |
ssl_key_file ($PGDATA/server.key) | закÑÑÑÑй клÑÑ ÑеÑвеÑа | подÑвеÑждаеÑ, ÑÑо ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа бÑл пеÑедан его владелÑÑем; не гаÑанÑиÑÑеÑ, ÑÑо его владелÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ довеÑÑÑÑ |
ssl_ca_file ($PGDATA/root.crt) | ÑеÑÑиÑикаÑÑ Ð´Ð¾Ð²ÐµÑеннÑÑ Ð¦Ð¡ | позволÑÐµÑ Ð¿ÑовеÑиÑÑ, ÑÑо ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÐºÐ»Ð¸ÐµÐ½Ñа подпиÑан довеÑеннÑм ÑенÑÑом ÑеÑÑиÑикаÑии |
ssl_crl_file ($PGDATA/root.crl) | ÑеÑÑиÑикаÑÑ, оÑозваннÑе ÑенÑÑами ÑеÑÑиÑикаÑии | ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÐºÐ»Ð¸ÐµÐ½Ñа должен оÑÑÑÑÑÑвоваÑÑ Ð² ÑÑом ÑпиÑке |
СеÑÐ²ÐµÑ ÑиÑÐ°ÐµÑ ÑÑи ÑÐ°Ð¹Ð»Ñ Ð¿Ñи запÑÑке или пÑи пеÑезагÑÑзке конÑигÑÑаÑии. Ð ÑиÑÑÐµÐ¼Ð°Ñ Windows они Ñакже ÑÑиÑÑваÑÑÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾, когда Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ клиенÑÑкого подклÑÑÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑÑкаеÑÑÑ Ð½Ð¾Ð²Ñй обÑлÑживаÑÑий пÑоÑеÑÑ.
ÐÑли в ÑÑÐ¸Ñ ÑÐ°Ð¹Ð»Ð°Ñ Ð¿Ñи запÑÑке ÑеÑвеÑа обнаÑÑжиÑÑÑ Ð¾Ñибка, ÑеÑÐ²ÐµÑ Ð¾ÑкажеÑÑÑ Ð·Ð°Ð¿ÑÑкаÑÑÑÑ. Ðо еÑли оÑибка обнаÑÑживаеÑÑÑ Ð¿Ñи пеÑезагÑÑзке конÑигÑÑаÑии, ÑÑи ÑÐ°Ð¹Ð»Ñ Ð¸Ð³Ð½Ð¾ÑиÑÑÑÑÑÑ Ð¸ пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑÑаÑÐ°Ñ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ SSL. Ð ÑиÑÑÐµÐ¼Ð°Ñ Windows, еÑли в одном из ÑÑÐ¸Ñ Ñайлов обнаÑÑживаеÑÑÑ Ð¾Ñибка пÑи запÑÑке обÑлÑживаÑÑего пÑоÑеÑÑа, ÑÑÐ¾Ñ Ð¿ÑоÑеÑÑ Ð½Ðµ ÑÐ¼Ð¾Ð¶ÐµÑ ÑÑÑанавливаÑÑ SSL-ÑоединениÑ. Ðо вÑÐµÑ ÑÐ°ÐºÐ¸Ñ ÑлÑÑаÑÑ Ð² жÑÑнал ÑобÑÑий ÑеÑвеÑа вÑводиÑÑÑ ÑообÑение об оÑибке.
17.9.3. Создание ÑеÑÑиÑикаÑов
ЧÑÐ¾Ð±Ñ ÑоздаÑÑ Ð¿ÑоÑÑой ÑамоподпиÑаннÑй ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð´Ð»Ñ ÑеÑвеÑа, дейÑÑвÑÑÑий 365 дней, вÑполниÑе ÑледÑÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ OpenSSL, заменив dbhost.yourdomain.com именем компÑÑÑеÑа, где ÑазмеÑÑн ÑеÑвеÑ:
openssl req -new -x509 -days 365 -nodes -text -out server.crt \
-keyout server.key -subj "/CN=dbhost.yourdomain.com"ÐаÑем вÑполниÑе:
chmod og-rwx server.key
Ñак как ÑеÑÐ²ÐµÑ Ð½Ðµ пÑÐ¸Ð¼ÐµÑ ÑÑÐ¾Ñ Ñайл, еÑли ÑазÑеÑÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð±Ð¾Ð»ÐµÐµ либеÑалÑнÑми, Ñем показаннÑе. Ðа дополниÑелÑнÑми ÑведениÑми оÑноÑиÑелÑно ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð·Ð°ÐºÑÑÑого клÑÑа и ÑеÑÑиÑикаÑа ÑеÑвеÑа обÑаÑиÑеÑÑ Ðº докÑменÑаÑии OpenSSL.
ХоÑÑ ÑамоподпиÑаннÑй ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð¼Ð¾Ð¶ÐµÑ ÑÑпеÑно пÑименÑÑÑÑÑ Ð¿Ñи ÑеÑÑиÑовании, в пÑоизводÑÑвенной ÑÑеде ÑледÑÐµÑ Ð¸ÑполÑзоваÑÑ ÑеÑÑиÑикаÑ, подпиÑаннÑй ÑенÑÑом ÑеÑÑиÑикаÑии (ЦС) (обÑÑно ÑÑо коÑневой ЦС пÑедпÑиÑÑиÑ).
ЧÑÐ¾Ð±Ñ ÑоздаÑÑ ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа, подлинноÑÑÑ ÐºÐ¾ÑоÑого ÑмогÑÑ Ð¿ÑовеÑÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ, ÑнаÑала ÑоздайÑе запÑÐ¾Ñ Ð½Ð° полÑÑение ÑеÑÑиÑикаÑа (CSR) и ÑÐ°Ð¹Ð»Ñ Ð¾ÑкÑÑÑого/закÑÑÑого клÑÑа:
openssl req -new -nodes -text -out root.csr \
-keyout root.key -subj "/CN=root.yourdomain.com"
chmod og-rwx root.keyÐаÑем подпиÑиÑе запÑÐ¾Ñ ÐºÐ»ÑÑом, ÑÑÐ¾Ð±Ñ ÑоздаÑÑ ÐºÐ¾Ñневой ÑенÑÑ ÑеÑÑиÑикаÑии (Ñ Ñайлом конÑигÑÑаÑии OpenSSL, помеÑÑннÑм в Linux в ÑаÑположение по ÑмолÑаниÑ):
openssl x509 -req -in root.csr -text -days 3650 \ -extfile /etc/ssl/openssl.cnf -extensions v3_ca \ -signkey root.key -out root.crt
ÐаконеÑ, ÑоздайÑе ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа, подпиÑаннÑй новÑм коÑневÑм ÑенÑÑом ÑеÑÑиÑикаÑии:
openssl req -new -nodes -text -out server.csr \
-keyout server.key -subj "/CN=dbhost.yourdomain.com"
chmod og-rwx server.key
openssl x509 -req -in server.csr -text -days 365 \
-CA root.crt -CAkey root.key -CAcreateserial \
-out server.crtserver.crt и server.key Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑоÑ
ÑÐ°Ð½ÐµÐ½Ñ Ð½Ð° ÑеÑвеÑе, а root.crt â на клиенÑе, ÑÑÐ¾Ð±Ñ ÐºÐ»Ð¸ÐµÐ½Ñ Ð¼Ð¾Ð³ ÑбедиÑÑÑÑ Ð² Ñом, ÑÑо конеÑнÑй ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа подпиÑан ÑенÑÑом ÑеÑÑиÑикаÑии, коÑоÑÐ¾Ð¼Ñ Ð¾Ð½ довеÑÑеÑ. Файл root.key ÑледÑÐµÑ Ñ
ÑаниÑÑ Ð² изолиÑованном меÑÑе Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑеÑÑиÑикаÑов в бÑдÑÑем.
Также возможно ÑоздаÑÑ ÑепоÑÐºÑ Ð´Ð¾Ð²ÐµÑиÑ, вклÑÑаÑÑÑÑ Ð¿ÑомежÑÑоÑнÑе ÑеÑÑиÑикаÑÑ:
# коÑневой ÑеÑÑиÑÐ¸ÐºÐ°Ñ openssl req -new -nodes -text -out root.csr \ -keyout root.key -subj "/CN=root.yourdomain.com" chmod og-rwx root.key openssl x509 -req -in root.csr -text -days 3650 \ -extfile /etc/ssl/openssl.cnf -extensions v3_ca \ -signkey root.key -out root.crt # пÑомежÑÑоÑнÑй openssl req -new -nodes -text -out intermediate.csr \ -keyout intermediate.key -subj "/CN=intermediate.yourdomain.com" chmod og-rwx intermediate.key openssl x509 -req -in intermediate.csr -text -days 1825 \ -extfile /etc/ssl/openssl.cnf -extensions v3_ca \ -CA root.crt -CAkey root.key -CAcreateserial \ -out intermediate.crt # конеÑнÑй openssl req -new -nodes -text -out server.csr \ -keyout server.key -subj "/CN=dbhost.yourdomain.com" chmod og-rwx server.key openssl x509 -req -in server.csr -text -days 365 \ -CA intermediate.crt -CAkey intermediate.key -CAcreateserial \ -out server.crt
server.crt и intermediate.crt ÑледÑÐµÑ ÑложиÑÑ Ð²Ð¼ÐµÑÑе в Ð¿Ð°ÐºÐµÑ ÑеÑÑиÑикаÑов и ÑоÑ
ÑаниÑÑ Ð½Ð° ÑеÑвеÑе. Также на ÑеÑвеÑе ÑледÑÐµÑ ÑоÑ
ÑаниÑÑ server.key. Файл root.crt нÑжно ÑоÑ
ÑаниÑÑ Ð½Ð° клиенÑе, ÑÑÐ¾Ð±Ñ ÐºÐ»Ð¸ÐµÐ½Ñ Ð¼Ð¾Ð³ ÑбедиÑÑÑÑ Ð² Ñом, ÑÑо конеÑнÑй ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа бÑл подпиÑан по ÑепоÑке ÑеÑÑиÑикаÑов, ÑвÑзаннÑÑ
Ñ ÐºÐ¾ÑневÑм ÑеÑÑиÑикаÑом, коÑоÑÐ¾Ð¼Ñ Ð¾Ð½ довеÑÑеÑ. Ð¤Ð°Ð¹Ð»Ñ root.key и intermediate.key ÑледÑÐµÑ Ñ
ÑаниÑÑ Ð² изолиÑованном меÑÑе Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑеÑÑиÑикаÑов в бÑдÑÑем.