17.9. ÐаÑиÑа Ñоединений TCP/IP Ñ Ð¿Ñименением SSL #
Ð Postgres Pro вÑÑÑоена поддеÑжка SSL Ð´Ð»Ñ ÑиÑÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑаÑика Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»Ð¸ÐµÐ½Ñом и ÑеÑвеÑом, ÑÑо повÑÑÐ°ÐµÑ ÑÑÐ¾Ð²ÐµÐ½Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑи ÑиÑÑемÑ.
ТеÑÐ¼Ð¸Ð½Ñ SSL и TLS ÑаÑÑо иÑполÑзÑÑÑÑÑ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð·Ð°Ð¼ÐµÐ½Ñемо Ð´Ð»Ñ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñного заÑиÑÑованного ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ пÑоÑÐ¾ÐºÐ¾Ð»Ñ TLS. ХоÑÑ SSL-пÑоÑоколÑ, ÑвлÑÑÑиеÑÑ Ð¿ÑедÑеÑÑвенниками TLS-пÑоÑоколов, Ñже не поддеÑживаÑÑÑÑ, ÑеÑмин SSL вÑÑ ÐµÑÑ Ð¸ÑполÑзÑеÑÑÑ. Ð Postgres Pro ÑеÑÐ¼Ð¸Ð½Ñ SSL и TLS взаимозаменÑемÑ.
17.9.1. ÐÐ°Ð·Ð¾Ð²Ð°Ñ Ð½Ð°ÑÑÑойка #
Ðогда ÑеÑÐ²ÐµÑ Postgres Pro ÑкомпилиÑован Ñ SSL, его можно запÑÑÑиÑÑ Ñ Ð²ÐºÐ»ÑÑÑнной поддеÑжкой заÑиÑÑованнÑÑ
Ñоединений по пÑоÑоколам TLS, задав в postgresql.conf Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа ssl знаÑение on. ÐапÑÑеннÑй ÑеÑÐ²ÐµÑ Ð±ÑÐ´ÐµÑ Ð¿ÑинимаÑÑ ÐºÐ°Ðº обÑÑнÑе, Ñак и SSL-подклÑÑÐµÐ½Ð¸Ñ Ð² одном поÑÑÑ TCP и бÑÐ´ÐµÑ ÑоглаÑовÑваÑÑ Ð¸ÑполÑзование SSL Ñ ÐºÐ°Ð¶Ð´Ñм клиенÑом. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÐºÐ»Ð¸ÐµÐ½Ñ Ð²ÑбиÑÐ°ÐµÑ Ñежим подклÑÑÐµÐ½Ð¸Ñ Ñам; как наÑÑÑоиÑÑ ÑеÑвеÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð½ ÑÑебовал иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑолÑко SSL Ð´Ð»Ñ Ð²ÑеÑ
или некоÑоÑÑÑ
подклÑÑений, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑзнаÑÑ Ð² Разделе 19.1.
ЧÑÐ¾Ð±Ñ ÑеÑÐ²ÐµÑ Ð¼Ð¾Ð³ ÑабоÑаÑÑ Ð² Ñежиме SSL, ÐµÐ¼Ñ Ð½ÐµÐ¾Ð±Ñ
Ð¾Ð´Ð¸Ð¼Ñ ÑÐ°Ð¹Ð»Ñ Ñ ÑеÑÑиÑикаÑом ÑеÑвеÑа и закÑÑÑÑм клÑÑом. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑо Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑÐ°Ð¹Ð»Ñ server.crt и server.key, ÑооÑвеÑÑÑвенно, ÑаÑположеннÑе в каÑалоге даннÑÑ
, но можно иÑполÑзоваÑÑ Ð¸ дÑÑгие имена и меÑÑÐ¾Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ñайлов, задав иÑ
в конÑигÑÑаÑионнÑÑ
паÑамеÑÑаÑ
ssl_cert_file и ssl_key_file.
Ð Unix-подобнÑÑ
ÑиÑÑемаÑ
к ÑÐ°Ð¹Ð»Ñ server.key должен бÑÑÑ Ð·Ð°Ð¿ÑеÑÑн лÑбой доÑÑÑп гÑÑÐ¿Ð¿Ñ Ð¸ вÑеÑ
оÑÑалÑнÑÑ
; ÑÑÐ¾Ð±Ñ ÑÑÑановиÑÑ Ñакое огÑаниÑение, вÑполниÑе chmod 0600 server.key. Ðозможен и дÑÑгой ваÑианÑ, когда ÑÑим Ñайлом Ð²Ð»Ð°Ð´ÐµÐµÑ root, а гÑÑппа Ð¸Ð¼ÐµÐµÑ Ð´Ð¾ÑÑÑп на ÑÑение (Ñо еÑÑÑ, маÑка ÑазÑеÑений 0640). ÐаннÑй ваÑÐ¸Ð°Ð½Ñ Ð¿ÑедназнаÑен Ð´Ð»Ñ ÑиÑÑем, в коÑоÑÑÑ
Ñайлами ÑеÑÑиÑикаÑов и клÑÑей ÑпÑавлÑÐµÑ Ñама опеÑаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑиÑÑема. Ð ÑÑом ÑлÑÑае полÑзоваÑелÑ, запÑÑкаÑÑий ÑеÑÐ²ÐµÑ Postgres Pro, должен бÑÑÑ Ñленом гÑÑппÑ, имеÑÑей доÑÑÑп к ÑказаннÑм Ñайлам ÑеÑÑиÑикаÑа и клÑÑа.
ÐÑли к каÑÐ°Ð»Ð¾Ð³Ñ Ð´Ð°Ð½Ð½ÑÑ ÑазÑеÑÑн доÑÑÑп гÑÑппÑ, ÑÐ°Ð¹Ð»Ñ ÑеÑÑиÑикаÑов Ð´Ð¾Ð»Ð¶Ð½Ñ ÑазмеÑаÑÑÑÑ Ð²Ð½Ðµ ÑÑого каÑалога Ð´Ð»Ñ ÑдовлеÑвоÑÐµÐ½Ð¸Ñ Ð¾Ð·Ð²ÑÑеннÑÑ Ð²ÑÑе ÑÑебований безопаÑноÑÑи. ÐообÑе говоÑÑ, доÑÑÑп гÑÑÐ¿Ð¿Ñ ÑазÑеÑаеÑÑÑ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð½ÐµÐ¿ÑивилегиÑованнÑй полÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð³ пÑоизводиÑÑ ÑезеÑвное копиÑование Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , и в ÑÑом ÑлÑÑае ÑÑедÑÑво ÑезеÑвного копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ðµ ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑоÑиÑаÑÑ ÑÐ°Ð¹Ð»Ñ ÑеÑÑиÑикаÑов, ÑÑо ÑкоÑее вÑего пÑиведÑÑ Ðº оÑибке.
ÐÑли закÑÑÑÑй клÑÑ Ð·Ð°ÑиÑÑн паÑолем, ÑеÑÐ²ÐµÑ ÑпÑоÑÐ¸Ñ ÑÑÐ¾Ñ Ð¿Ð°ÑÐ¾Ð»Ñ Ð¸ не бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑÑкаÑÑÑÑ, пока он не бÑÐ´ÐµÑ Ð²Ð²ÐµÐ´Ñн. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¸ÑполÑзование Ñакого паÑÐ¾Ð»Ñ Ð»Ð¸ÑÐ°ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи изменÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ SSL без пеÑезагÑÑзки ÑеÑвеÑа, однако паÑамеÑÑ ssl_passphrase_command_supports_reload пÑи некоÑоÑÑÑ ÑÑловиÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð´ÐµÐ»Ð°ÑÑ ÑÑо. Ðолее Ñого, закÑÑÑÑе клÑÑи, заÑиÑÑннÑе паÑолем, не годÑÑÑÑ Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² Windows.
ÐеÑвÑм ÑеÑÑиÑикаÑом в server.crt должен бÑÑÑ ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа, Ñак как он должен ÑооÑвеÑÑÑвоваÑÑ Ð·Ð°ÐºÑÑÑÐ¾Ð¼Ñ ÐºÐ»ÑÑÑ ÑеÑвеÑа. Ð ÑÑÐ¾Ñ Ñайл Ñакже могÑÑ Ð±ÑÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ ÑеÑÑиÑикаÑÑ Â«Ð¿ÑомежÑÑоÑнÑÑ
» ÑенÑÑов ÑеÑÑиÑикаÑии. ÐÑо избавлÑÐµÑ Ð¾Ñ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи Ñ
ÑаниÑÑ Ð²Ñе пÑомежÑÑоÑнÑе ÑеÑÑиÑикаÑÑ Ð½Ð° клиенÑаÑ
, пÑи ÑÑловии, ÑÑо коÑневой и пÑомежÑÑоÑнÑе ÑеÑÑиÑикаÑÑ Ð±Ñли ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ñ ÑаÑÑиÑениÑми v3_ca. (ÐÑи ÑÑом в оÑновнÑÑ
огÑаниÑениÑÑ
ÑеÑÑиÑикаÑа ÑÑÑанавливаеÑÑÑ ÑвойÑÑво CA, Ñавное true.) ÐÑо Ñакже ÑпÑоÑÐ°ÐµÑ ÑпÑавление пÑомежÑÑоÑнÑми ÑеÑÑиÑикаÑами Ñ Ð¸ÑÑекаÑÑим ÑÑоком.
ÐобавлÑÑÑ ÐºÐ¾Ñневой ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð² server.crt Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ
одимоÑÑи. ÐмеÑÑо ÑÑого клиенÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ ÑÑÐ¾Ñ ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð² ÑепоÑке ÑеÑÑиÑикаÑов ÑеÑвеÑа.
17.9.2. ÐонÑигÑÑаÑÐ¸Ñ OpenSSL #
Postgres Pro ÑиÑÐ°ÐµÑ ÑиÑÑемнÑй Ñайл конÑигÑÑаÑии OpenSSL. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÐ¾Ñ Ñайл назÑваеÑÑÑ openssl.cnf и наÑ
одиÑÑÑ Ð² каÑалоге, коÑоÑÑй ÑообÑÐ°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° openssl version -d. ÐÑли ÑÑебÑеÑÑÑ ÑказаÑÑ Ð´ÑÑгое ÑаÑположение Ñайла конÑигÑÑаÑии, его можно задаÑÑ Ð² пеÑеменной окÑÑÐ¶ÐµÐ½Ð¸Ñ OPENSSL_CONF.
OpenSSL пÑедоÑÑавлÑÐµÑ ÑиÑокий вÑÐ±Ð¾Ñ ÑиÑÑов и алгоÑиÑмов аÑÑенÑиÑикаÑии Ñазной заÑиÑÑнноÑÑи. ХоÑÑ ÑпиÑок ÑиÑÑов Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð´Ð°Ð½ непоÑÑедÑÑвенно в Ñайле конÑигÑÑаÑии OpenSSL, можно задаÑÑ Ð¾ÑделÑнÑе ÑиÑÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ Ð´Ð»Ñ ÑеÑвеÑа баз даннÑÑ
, Ñказав иÑ
в паÑамеÑÑе ssl_ciphers в postgresql.conf.
ÐÑимеÑание
ÐакладнÑе ÑаÑÑ
одÑ, ÑвÑзаннÑе Ñ ÑиÑÑованием, в пÑинÑипе можно иÑклÑÑиÑÑ, огÑаниÑивÑиÑÑ ÑолÑко пÑовеÑкой подлинноÑÑи, Ñо еÑÑÑ Ð¿ÑименÑÑ ÑиÑÑ NULL-SHA или NULL-MD5. Ðднако в ÑÑом ÑлÑÑае поÑÑедник ÑÐ¼Ð¾Ð¶ÐµÑ Ð¿ÑопÑÑкаÑÑ ÑеÑез ÑÐµÐ±Ñ Ð¸ ÑиÑаÑÑ Ð²ÐµÑÑ ÑÑаÑик Ð¼ÐµÐ¶Ð´Ñ ÐºÐ»Ð¸ÐµÐ½Ñом и ÑеÑвеÑом. ÐÑоме Ñого, ÑиÑÑование пÑивноÑÐ¸Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»ÑнÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑÑ Ð½Ð°Ð³ÑÑÐ·ÐºÑ Ð¿Ð¾ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ Ð¿ÑовеÑкой подлинноÑÑи. Ðо ÑÑим пÑиÑинам иÑполÑзоваÑÑ ÑиÑÑÑ NULL не ÑекомендÑеÑÑÑ.
17.9.3. ÐÑполÑзование клиенÑÑÐºÐ¸Ñ ÑеÑÑиÑикаÑов #
ЧÑÐ¾Ð±Ñ ÐºÐ»Ð¸ÐµÐ½ÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±Ñли пÑедоÑÑавлÑÑÑ ÑеÑвеÑÑ Ð´Ð¾Ð²ÐµÑеннÑе ÑеÑÑиÑикаÑÑ, помеÑÑиÑе ÑеÑÑиÑикаÑÑ ÐºÐ¾ÑневÑÑ
ÑенÑÑов ÑеÑÑиÑикаÑии (ЦС), коÑоÑÑм Ð²Ñ Ð´Ð¾Ð²ÐµÑÑеÑе, в Ñайл в каÑалоге даннÑÑ
, ÑкажиÑе в паÑамеÑÑе ssl_ca_file в postgresql.conf Ð¸Ð¼Ñ ÑÑого Ñайла и добавÑÑе ваÑÐ¸Ð°Ð½Ñ Ð°ÑÑенÑиÑикаÑии clientcert=verify-ca или clientcert=verify-full в ÑооÑвеÑÑÑвÑÑÑие ÑÑÑоки hostssl в pg_hba.conf. Ð ÑезÑлÑÑаÑе Ð¾Ñ ÐºÐ»Ð¸ÐµÐ½Ñа в пÑоÑеÑÑе ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ SSL-подклÑÑÐµÐ½Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°ÑÑебован ÑеÑÑиÑикаÑ. (Ðак наÑÑÑоиÑÑ ÑеÑÑиÑикаÑÑ Ð½Ð° ÑÑоÑоне клиенÑа, опиÑÑваеÑÑÑ Ð² Разделе 32.19.)
ÐÐ»Ñ Ð·Ð°Ð¿Ð¸Ñи hostssl Ñ Ñказанием clientcert=verify-ca ÑеÑÐ²ÐµÑ Ð±ÑÐ´ÐµÑ Ð¿ÑовеÑÑÑÑ, подпиÑан ли ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÐºÐ»Ð¸ÐµÐ½Ñа довеÑеннÑм Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ ÑенÑÑом ÑеÑÑиÑикаÑии. ÐÐ»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ clientcert=verify-full ÑеÑÐ²ÐµÑ Ð½Ðµ ÑолÑко пÑовеÑÑÐµÑ ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð¿Ð¾ ÑепоÑке довеÑиÑ, но и ÑвеÑÑÐµÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¸Ð»Ð¸ имÑ, ÑопоÑÑавленное емÑ, Ñ Ð¾Ð±Ñим именем (cn, Common Name), ÑказаннÑм в пÑедÑÑавленном ÑеÑÑиÑикаÑе. ÐамеÑÑÑе, ÑÑо ÑепоÑка довеÑÐ¸Ñ Ð´Ð»Ñ ÑеÑÑиÑикаÑа пÑи иÑполÑзовании меÑода аÑÑенÑиÑикаÑии cert пÑовеÑÑеÑÑÑ Ð²Ñегда (Ñм. Раздел 19.12).
ÐÑомежÑÑоÑнÑе ÑеÑÑиÑикаÑÑ, коÑоÑÑе ÑоÑÑавлÑÑÑ ÑепоÑÐºÑ Ñ ÑÑÑеÑÑвÑÑÑими коÑневÑми ÑеÑÑиÑикаÑами, можно Ñакже вклÑÑиÑÑ Ð² Ñайл ssl_ca_file, еÑли Ð²Ñ Ð½Ðµ Ñ
оÑиÑе Ñ
ÑаниÑÑ Ð¸Ñ
на ÑÑоÑоне клиенÑа (пÑедполагаеÑÑÑ, ÑÑо коÑневой и пÑомежÑÑоÑнÑй ÑеÑÑиÑикаÑÑ Ð±Ñли ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ñ ÑаÑÑиÑениÑми v3_ca). ÐÑли ÑÑÑановлен паÑамеÑÑ ssl_crl_file или ssl_crl_dir, Ñакже пÑовеÑÑÑÑÑÑ ÑпиÑки оÑзÑва ÑеÑÑиÑикаÑов (Certificate Revocation List, CRL).
ÐаÑамеÑÑ Ð°ÑÑенÑиÑикаÑии clientcert можно иÑполÑзоваÑÑ Ñ Ð»ÑбÑм меÑодом пÑовеÑки подлинноÑÑи, но ÑолÑко в ÑÑÑокаÑ
pg_hba.conf Ñипа hostssl. Ðогда clientcert не задан, ÑеÑÐ²ÐµÑ Ð¿ÑовеÑÑÐµÑ ÐºÐ»Ð¸ÐµÐ½ÑÑкий ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð¿Ð¾ ÑÐ²Ð¾ÐµÐ¼Ñ ÑпиÑÐºÑ Ð¦Ð¡, ÑолÑко еÑли ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð¿ÑедоÑÑавлен и ÑÑÐ¾Ñ ÑпиÑок опÑеделÑн.
ÐÑÑÑ Ð´Ð²Ð° ÑпоÑоба поÑÑебоваÑÑ Ð¾Ñ Ð¿Ð¾Ð»ÑзоваÑелей пÑедоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑеÑÑиÑикаÑа пÑи подклÑÑении.
ÐеÑвÑй ваÑÐ¸Ð°Ð½Ñ Ð·Ð°ÐºÐ»ÑÑаеÑÑÑ Ð² иÑполÑзовании меÑода аÑÑенÑиÑикаÑии cert в запиÑÑÑ
hostssl в pg_hba.conf. ÐÑи ÑÑом ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð±ÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð¸ Ð´Ð»Ñ Ð¿ÑовеÑки подлинноÑÑи, и Ð´Ð»Ñ Ð·Ð°ÑиÑÑ SSL-подклÑÑениÑ. Ðа подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº РазделÑ 19.12. (ÐадаваÑÑ Ñвно какие-либо знаÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑа clientcert пÑи иÑполÑзовании меÑода аÑÑенÑиÑикаÑии cert не ÑÑебÑеÑÑÑ.) Ð ÑÑом ÑлÑÑае в каÑеÑÑве имени полÑзоваÑÐµÐ»Ñ Ð¸Ð»Ð¸ ÑопоÑÑавлÑемого имени иÑполÑзÑеÑÑÑ Ð¸Ð¼Ñ Ð¸Ð· Ð¿Ð¾Ð»Ñ cn (Common Name, ÐбÑее имÑ) ÑеÑÑиÑикаÑа.
ÐÑоÑой ваÑÐ¸Ð°Ð½Ñ ÑоÑеÑÐ°ÐµÑ Ð¸ÑполÑзование пÑоизволÑного меÑода аÑÑенÑиÑикаÑии в запиÑÑÑ
hostssl Ñ Ð¿ÑовеÑкой клиенÑÑкиÑ
ÑеÑÑиÑикаÑов, коÑоÑÐ°Ñ Ð²ÑполнÑеÑÑÑ Ð¿Ñи знаÑении паÑамеÑÑа clientcert, Ñавном verify-ca или verify-full. ÐеÑвое знаÑение вклÑÑÐ°ÐµÑ ÑолÑко пÑовеÑÐºÑ Ð´Ð¾ÑÑовеÑноÑÑи ÑеÑÑиÑикаÑа, а поÑледнее Ñакже ÑвеÑÑÐµÑ Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¸Ð»Ð¸ пÑименÑемое ÑопоÑÑавление Ñ Ð¾Ð±Ñим именем cn (Common Name), ÑказаннÑм в ÑеÑÑиÑикаÑе.
17.9.4. ФайлÑ, иÑполÑзÑемÑе SSL-ÑеÑвеÑом #
РТаблиÑе 17.2 кÑаÑко опиÑÐ°Ð½Ñ Ð²Ñе ÑайлÑ, имеÑÑие оÑноÑение к наÑÑÑойке SSL на ÑеÑвеÑе. (ÐдеÑÑ Ð¿ÑÐ¸Ð²ÐµÐ´ÐµÐ½Ñ ÑÑандаÑÑнÑе имена Ñайлов. РконкÑеÑной ÑиÑÑеме они могÑÑ Ð±ÑÑÑ Ð´ÑÑгими.)
ТаблиÑа 17.2. ФайлÑ, иÑполÑзÑемÑе SSL-ÑеÑвеÑом
| Файл | СодеÑжимое | ÐазнаÑение |
|---|---|---|
ssl_cert_file ($PGDATA/server.crt) | ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа | оÑпÑавлÑеÑÑÑ ÐºÐ»Ð¸ÐµÐ½ÑÑ Ð´Ð»Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑии ÑеÑвеÑа |
ssl_key_file ($PGDATA/server.key) | закÑÑÑÑй клÑÑ ÑеÑвеÑа | подÑвеÑждаеÑ, ÑÑо ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÑеÑвеÑа бÑл пеÑедан его владелÑÑем; не гаÑанÑиÑÑеÑ, ÑÑо его владелÑÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ довеÑÑÑÑ |
| ssl_ca_file | ÑеÑÑиÑикаÑÑ Ð´Ð¾Ð²ÐµÑеннÑÑ Ð¦Ð¡ | позволÑÐµÑ Ð¿ÑовеÑиÑÑ, ÑÑо ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÐºÐ»Ð¸ÐµÐ½Ñа подпиÑан довеÑеннÑм ÑенÑÑом ÑеÑÑиÑикаÑии |
| ssl_crl_file | ÑеÑÑиÑикаÑÑ, оÑозваннÑе ÑенÑÑами ÑеÑÑиÑикаÑии | ÑеÑÑиÑÐ¸ÐºÐ°Ñ ÐºÐ»Ð¸ÐµÐ½Ñа должен оÑÑÑÑÑÑвоваÑÑ Ð² ÑÑом ÑпиÑке |
СеÑÐ²ÐµÑ ÑиÑÐ°ÐµÑ ÑÑи ÑÐ°Ð¹Ð»Ñ Ð¿Ñи запÑÑке или пÑи пеÑезагÑÑзке конÑигÑÑаÑии. Ð ÑиÑÑÐµÐ¼Ð°Ñ Windows они Ñакже ÑÑиÑÑваÑÑÑÑ Ð·Ð°Ð½Ð¾Ð²Ð¾, когда Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ клиенÑÑкого подклÑÑÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑÑкаеÑÑÑ Ð½Ð¾Ð²Ñй обÑлÑживаÑÑий пÑоÑеÑÑ.
ÐÑли в ÑÑÐ¸Ñ ÑÐ°Ð¹Ð»Ð°Ñ Ð¿Ñи запÑÑке ÑеÑвеÑа обнаÑÑжиÑÑÑ Ð¾Ñибка, ÑеÑÐ²ÐµÑ Ð¾ÑкажеÑÑÑ Ð·Ð°Ð¿ÑÑкаÑÑÑÑ. Ðо еÑли оÑибка обнаÑÑживаеÑÑÑ Ð¿Ñи пеÑезагÑÑзке конÑигÑÑаÑии, ÑÑи ÑÐ°Ð¹Ð»Ñ Ð¸Ð³Ð½Ð¾ÑиÑÑÑÑÑÑ Ð¸ пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÑÑаÑÐ°Ñ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ SSL. Ð ÑиÑÑÐµÐ¼Ð°Ñ Windows, еÑли в одном из ÑÑÐ¸Ñ Ñайлов обнаÑÑживаеÑÑÑ Ð¾Ñибка пÑи запÑÑке обÑлÑживаÑÑего пÑоÑеÑÑа, ÑÑÐ¾Ñ Ð¿ÑоÑеÑÑ Ð½Ðµ ÑÐ¼Ð¾Ð¶ÐµÑ ÑÑÑанавливаÑÑ SSL-ÑоединениÑ. Ðо вÑÐµÑ ÑÐ°ÐºÐ¸Ñ ÑлÑÑаÑÑ Ð² жÑÑнал ÑобÑÑий ÑеÑвеÑа вÑводиÑÑÑ ÑообÑение об оÑибке.
17.9.5. Создание ÑеÑÑиÑикаÑов #
ЧÑÐ¾Ð±Ñ ÑоздаÑÑ Ð¿ÑоÑÑой ÑамоподпиÑаннÑй ÑеÑÑиÑÐ¸ÐºÐ°Ñ Ð´Ð»Ñ ÑеÑвеÑа, дейÑÑвÑÑÑий 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 ÑледÑÐµÑ Ñ
ÑаниÑÑ Ð² изолиÑованном меÑÑе Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑеÑÑиÑикаÑов в бÑдÑÑем.