Back to site

Стварэнне і выкарыстанне сертыфікатаў SSL

Гэты дакумент апісвае, як усталяваць сябе ў якасці цэнтра сертыфікацыі корань (каранёвай CA) з дапамогай OpenSSL набор інструментаў. Як каранёвага цэнтра сертыфікацыі, Вы можаце падпісаць і ўсталяваць сертыфікаты для выкарыстання ў Вашым інтэрнэт-серверныя прыкладанні, такія як Apache і Stunnel.

Пераклады

Калі прыкласці намаганні, каб перавесці гэты дакумент на іншую мову, калі ласка, дашліце мне спасылку, каб я мог размясціць яго тут. Мала таго, што я цаню гэта, іншыя носьбіты мовы будзе таксама. Гэты дакумент атрымлівае трафік з розных краін свету. Дзякуй усім.

Змест

Сфера

Гэты дакумент змяшчае вельмі канкрэтныя, абмежаваныя мэты, але той, які адказвае агульным неабходна: папярэджанне браўзэра, пошты і іншыя кліенты з скаргамі аб сертыфікатаў, усталяваных на вашым серверы.

Не пакрытыя мае справу з камерцыйнага цэнтра каранёвага сертыфіката (CA). Замест гэтага, мы сталі нашы ўласныя каранёвага цэнтра сертыфікацыі, а знак нашай ўласныя сертыфікаты.

Гэтыя працэдуры былі распрацаваныя з выкарыстаннем OpenSSL 0.9.6, 24 Sep 2000, на Linux.

Вярнуцца да пачатку

Хуткі старт

Тыя, хто хочуць, каб пачаць ствараць сертыфікаты адразу, не чытаючы ўвесь гэты дакумент павінен перайсці да рэзюмэ ў канцы.

Вярнуцца да пачатку

Фон

Навошта быць наш уласны каранёвай ЦС? Так што мы можам выкарыстоўваць SSL шыфраваныя, не марнуючы грошы на непатрэбныя Маючы сертыфікаты, падпісаныя.

Недахопам з'яўляецца тое, што браўзэры будуць па-ранейшаму скардзяцца на нашым сайце не давяраюць да нашай каранёвай сертыфікат імпартуецца. Аднак, як толькі гэта будзе зроблена, мы нічым не адрозніваюцца ад камерцыйных каранёвыя цэнтры сертыфікацыі.

Кліенты будуць імпартаваць толькі нашы каранёвага сертыфіката, калі яны нам давяраюць. Тут камерцыйных цэнтраў сертыфікацыі прыходзяць у: яны мяркуюць зрабіць шырокія даследаванні ў людзей і арганізацый, для якіх яны сертыфікаты знак. Па імпарту (на самай справе, па браўзэраў ўключэння) іх давераных каранёвых сертыфікатаў, мы кажам, што мы ім давяраем, калі яны гарантуюць, што хто-то іншы, хто яны кажуць, што яны з'яўляюцца. Мы можам давяраць дадатковых каранёвых цэнтраў сертыфікацыі (як і мы), імпартуем іх CA сертыфікаты.

Заўвага: Калі вы знаходзіцеся ў бізнэсе працуе камэрцыйны абаронены сайт, атрымання камерцыйнай сертыфікат з'яўляецца адзіным рэальным выбарам.

Вярнуцца да пачатку

Перадумовы

Вам трэба будзе ўсталяваная копія OpenSSL для гэтага, якая даступная з http://www.openssl.org. Хутчэй за ўсё, яна ўжо ўстаноўлена на вашай машыне. Гэты дакумент не распаўсюджваецца на працэдуру ўстаноўкі.

Вярнуцца да пачатку

Пачатковая настройка

Па-першае, мы створым каталог, у якім мы можам працаваць. Гэта не мае значэння, дзе гэта, я адвольна збіраемся стварыць яе ў сваім хатнім каталогу.


# MkDir CA

# CD CA
# MkDir newcerts прыватных

CA каталог будзе змяшчаць:

Ён таксама будзе наш працоўны каталог пры стварэнні або падпісання сертыфікатаў.

CA/ newcerts каталог будзе змяшчаць:

CA/ асабісты каталог будзе змяшчаць:

Гэты ключ мае важнае значэнне:

Наш наступны крок заключаецца ў стварэнні базы дадзеных для сертыфікатаў мы падпішам:


# Эхо '01 '> серыйны

# Touch index.txt

Замест таго каб выкарыстоўваць файл канфігурацыі, які пастаўляецца з OpenSSL, мы збіраемся стварыць мінімальную канфігурацыю нашай у гэтым каталогу. Пачніце свой рэдактар ??(VI, піка,...) і стварыць асноўны openssl.cnf:

---Begin---
#
# OpenSSL configuration file.
#

# Establish working directory.

dir			=.

----End----
Вярнуцца да пачатку

Стварэнне каранёвага сертыфіката

З OpenSSL, вялікая частка таго, што адбываецца ў сертыфіката залежыць ад зместу файла канфігурацыі, а не ў камандным радку. Гэта добрая рэч, таму што ёсць шмат паказаць.

Канфігурацыйны файл дзеліцца на часткі, якія выбарачна чытаць і апрацоўваюцца ў адпаведнасці з OpenSSL аргументы каманднага радка. Раздзелы могуць ўключаць адзін або некалькі іншых падзелаў, спасылаючыся на іх, што дапамагае зрабіць канфігурацыйны файл больш модульнай. Назва ў квадратных дужках (напрыклад "[REQ]") пачынаецца кожны падзел.

Зараз неабходна дадаць раздзел, які кантралюе, як сертыфікаты, якія, па падзеле вызначыць тып сертыфіката стварыць.

Першае, што мы павінны паказаць гэта адметная імя. Гэта тэкст, які ідэнтыфікуе ўладальніка сертыфіката пры праглядзе. Гэта не прамая спасылка на файл канфігурацыі, але ўваходзіць у раздзеле апрацоўваюцца, калі запыты на сертыфікаты ствараюцца. Каманда "OpenSSL REQ <args>", так што частка пад назвай [REQ].

Дадайце наступнае ў openssl.cnf:

---Begin---

[ req ]
default_bits		= 1024			# Size of keys
default_keyfile		= key.pem		# name of generated keys
default_md		= md5			# message digest algorithm
string_mask		= nombstr		# permitted characters
distinguished_name	= req_distinguished_name

[ req_distinguished_name ]
# Variable name		  Prompt string
#----------------------	  ----------------------------------
0.organizationName	= Organization Name (company)
organizationalUnitName	= Organizational Unit Name (department, division)
emailAddress		= Email Address
emailAddress_max	= 40
localityName		= Locality Name (city, district)
stateOrProvinceName	= State or Province Name (full name)
countryName		= Country Name (2 letter code)
countryName_min		= 2
countryName_max		= 2
commonName		= Common Name (hostname, IP, or your name)
commonName_max		= 64

# Default values for the above, for consistency and less typing.
# Variable name			  Value
#------------------------------	  ------------------------------
0.organizationName_default	= The Sample Company
localityName_default		= Metropolis
stateOrProvinceName_default	= New York
countryName_default		= US

[ v3_ca ]
basicConstraints	= CA:TRUE
subjectKeyIdentifier	= hash
authorityKeyIdentifier	= keyid:always,issuer:always

----End----
Для таго, каб абараніць сябе ад несанкцыянаванага выкарыстання нашых сертыфікатаў, гэта фраза абаронены. Кожны раз, калі вы выкарыстоўваеце сертыфікат CA падпісаць запыт, вам будзе прапанавана ўвесці пароль. Цяпер будзе добры час, каб выбраць бяспечную фразу і паклаў яго ў бяспечнае месца.

Усе падрыхтоўкі ў цяперашні час на месцы для стварэння нашага самозаверяющий каранёвага сертыфіката. Для гэтага мы хочам перавызначыць некаторыя значэнні па змаўчанні мы проста пакласці ў канфігурацыі, таму мы будзем паказваць наш перавызначаць у камандным радку.

Нашы пераазначэння "OpenSSL REQ" каманды:

(Звярніце ўвагу на тэрмін дзеяння каранёвых сертыфікатаў: каранёвага сертыфіката мінае, усё сертыфікаты, падпісаныя з ім больш не сапраўдныя. Каб Калі выправіць гэтую сітуацыю, новы каранёвай сертыфікат павінен быць створаны і распаўсюджаны. Акрамя таго, усе сертыфікаты, падпісаныя з мінулым трэба быць адменена, і паўторна падпісаў з новым. Як гэта можа быць шмат працы, вы хочаце, каб ваш каранёвай сертыфікат сапраўдным да таго часу, як вы думаеце, што Вы будзеце мець патрэбу ў гэтым. У гэтым прыкладзе мы робяць гэта дзейнічае на працягу дзесяці гадоў.)

Выканайце каманду, як паказана на малюнку. У гэтым выпадку, фраза PEM перадаць яго просіць з'яўляецца новым, які неабходна ўвесці ў два разы:


# openssl req -new -x509 -extensions v3_ca -keyout private/cakey.pem\
-out cacert.pem -days 3650 -config./openssl.cnf
Using configuration from./openssl.cnf
Generating a 1024 bit RSA private key
.......++++++
..........................++++++
writing new private key to 'private/cakey.pem'
Enter PEM pass phrase:demo
Verifying password - Enter PEM pass phrase:demo
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Organization Name (company) [The Sample Company]:<enter>
Organizational Unit Name (department, division) []:CA Division
Email Address []:ca@sample.com

Locality Name (city, district) [Metropolis]:<enter>
State or Province Name (full name) [New York]:<enter>
Country Name (2 letter code) [US]:<enter>
Common Name (hostname, IP, or your name) []:TSC Root CA

Гэты працэс стварае два файла на выхадзе:

cacert.pem гэта файл, які вы хочаце распаўсюджваць, каб вашыя кліенты.

Закрыты ключ (cakey.pem) выглядае наступным чынам:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,0947F49BB28FE5F4

jlQvt9WdR9Vpg3WQT5+C3HU17bUOwvhp/r0+viMcBUCRW85UqI2BJJKTi1IwQQ4c
tyTrhYJYOP+A6JXt5BzDzZy/B7tjEMDBosPiwH2m4MaP+6wTbi1qR1pFDL3fXYDr
ZsuN08dkbw9ML6LOX5Rl6bIBL3i5hnGiqm338Fl52gNstThv0C/OZhXT3B4qsJn8
qZb3mC6U2nRaP/NpZPcEx4lv2vH7OzHTu1TZ7t0asSpgpuH58dfHPw775kZDep2F
LXA3Oeavg0TLFHkaFBUx2xaeEG6Txpt9I74aAsw1T6UbTSjqgtsK0PHdjPNfPGlY
5U3Do1pnU9hfoem/4RAOe0cCovP/xf6YPBraSFPs4XFfnWwgEtL09ReFqO9T0aSp
5ajLyBOYOBKQ3PCSu1HQDw/OzphInhKxdYg81WBBEfELzSdMFQZgmfGrt5DyyWmq
TADwWtGVvO3pEhO1STmCaNqZQSpSwEGPGo5RFkyFvyvyozWX2SZg4g1o1X40qSg9
0FMHTEB5HQebEkKBoRQMCJN/uyKXTLjNB7ibtVbZmfjsi9oNd3NJNVQQH+o9I/rP
wtFsjs+t7SKrsFB2cxZQdDlFzD6EBA+5ytebGEI1lJHcOUEa6P+LTphlwh/o1QuN
IKX2YKHA4ePrBzdgZ+xZuSLn/Qtjg/eZv6i73VXoHk8EdxfOk5xkJ+DnsNmyx0vq
W53+O05j5xsxzDJfWr1lqBlFF/OkIYCPcyK1iLs4GOwe/V0udDNwr2Uw90tefr3q
X1OZ9Dix+U0u6xXTZTETJ5dF3hV6GF7hP3Tmj9/UQdBwBzr+D8YWzQ==
-----END RSA PRIVATE KEY-----
Вядома, вы не хочаце, каб паказаць гэта, каб хто-небудзь! Залішне казаць, што паказана тут цяпер бескарысным, так як закрыты ключ.

Сертыфікат (cacert.pem) выглядае наступным чынам:

-----BEGIN CERTIFICATE-----
MIIDrTCCAxagAwIBAgIBADANBgkqhkiG9w0BAQQFADCBnDEbMBkGA1UEChMSVGhl
IFNhbXBsZSBDb21wYW55MRQwEgYDVQQLEwtDQSBEaXZpc2lvbjEcMBoGCSqGSIb3
DQEJARYNY2FAc2FtcGxlLmNvbTETMBEGA1UEBxMKTWV0cm9wb2xpczERMA8GA1UE
CBMITmV3IFlvcmsxCzAJBgNVBAYTAlVTMRQwEgYDVQQDEwtUU0MgUm9vdCBDQTAe
Fw0wMTEyMDgwNDI3MDVaFw0wMjEyMDgwNDI3MDVaMIGcMRswGQYDVQQKExJUaGUg
U2FtcGxlIENvbXBhbnkxFDASBgNVBAsTC0NBIERpdmlzaW9uMRwwGgYJKoZIhvcN
AQkBFg1jYUBzYW1wbGUuY29tMRMwEQYDVQQHEwpNZXRyb3BvbGlzMREwDwYDVQQI
EwhOZXcgWW9yazELMAkGA1UEBhMCVVMxFDASBgNVBAMTC1RTQyBSb290IENBMIGf
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDaiAwfKB6ZBtnTRTIo6ddomt0S9ec0
NcuvtJogt0s9dXpHowh98FCDjnLtCi8du6LDTZluhlOtTFARPlV/LVnpsbyMCXMs
G2qpdjJop+XIBdvoCz2HpGXjUmym8WLqt+coWwJqUSwiEba74JG93v7TU+Xcvc00
5MWnxmKZzD/R3QIDAQABo4H8MIH5MAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFG/v
yytrBtEquMX2dreysix/MlPMMIHJBgNVHSMEgcEwgb6AFG/vyytrBtEquMX2drey
six/MlPMoYGipIGfMIGcMRswGQYDVQQKExJUaGUgU2FtcGxlIENvbXBhbnkxFDAS
BgNVBAsTC0NBIERpdmlzaW9uMRwwGgYJKoZIhvcNAQkBFg1jYUBzYW1wbGUuY29t
MRMwEQYDVQQHEwpNZXRyb3BvbGlzMREwDwYDVQQIEwhOZXcgWW9yazELMAkGA1UE
BhMCVVMxFDASBgNVBAMTC1RTQyBSb290IENBggEAMA0GCSqGSIb3DQEBBAUAA4GB
ABclymJfsPOUazNQO8aIaxwVbXWS+8AFEkMMRx6O68ICAMubQBvs8Buz3ALXhqYe
FS5G13pW2ZnAlSdTkSTKkE5wGZ1RYSfyiEKXb+uOKhDN9LnajDzaMPkNDU2NDXDz
SqHk9ZiE1boQaMzjNLu+KabTLpmL9uXvFA/i+gdenFHv
-----END CERTIFICATE-----

Мы можам запытаць змесціва дадзенага сертыфіката з OpenSSL, каб даведацца, каму належыць, што яна справядлівая для вытворчасці і інш:


# openssl x509 -in cacert.pem -noout -text
# openssl x509 -in cacert.pem -noout -dates
# openssl x509 -in cacert.pem -noout -purpose

Вярнуцца да пачатку

Стварэнне запыту на подпіс сертыфіката (CSR)

Цяпер у нас ёсць каранёвай сертыфікат, мы можам стварыць любую колькасць сертыфікатаў для ўстаноўкі ў нашай SSL прыкладанні, такія як HTTPS, SPOP, або SIMAP. Працэдура ўключае ў сябе стварэнне закрытага ключа і запыту сертыфіката, а затым падпісання запыту на генерацыю сертыфіката.

Наш канфігурацыйны файл трэба яшчэ некалькі азначэнняў для стварэння не-CA сертыфікаты. Дадаць наступны тэкст у канцы файла:

---Begin---
[ v3_req ]
basicConstraints	= CA:FALSE
subjectKeyIdentifier	= hash

----End----
Каб пазбегнуць неабходнасці неаднаразова ставіў гэта ў камандным радку, устаўце наступную радок у [REQ] раздзел пасля различающееся_имя лініі, як паказана:

---Begin---
distinguished_name	= req_distinguished_name
req_extensions		= v3_req

----End----
Цяпер мы гатовыя да стварэння нашага першага запыту на сертыфікат. У гэтым прыкладзе, мы збіраемся стварыць сертыфікат для бяспечнага сервера POP на mail.sample.com. Усё выглядае так жа, як тады, калі мы стварылі сертыфікат CA, але тры наступных запытаў атрымаць розныя адказы.

Агульнае імя павінна быць (або адрас IP павінен вырашыць, каб) імя сервера вашых кліентаў для сувязі з хост. Калі гэта не матч, кожны раз, калі яны падключаюцца вашы кліенты будуць атрымліваць паведамленні з просьбай, калі яны хочуць выкарыстоўваць гэты сервер. Па сутнасці, кліенцкае праграмнае забеспячэнне кажа: "Папярэджаньне;! Вы прасілі mail.sample.com адказ машыны сертыфіката для smtp.sample.com працягвацца. Вы ўпэўненыя, што вы хочаце?"


# OpenSSL REQ-Нью-вузлоў з-req.pem-канфігурацыі./ Openssl.cnf

...
Падраздзяленне Назва (аддзел, падраздзяленне) []: Mail Server
Электронны адрас: []: postmaster@sample.com
Агульнае імя (імя хосту, IP, ці ваша імя) []: mail.sample.com
...

Гэты працэс стварае два файла на выхадзе:

Гэтыя файлы павінны быць захаваныя. Калі сертыфікат вы збіраецеся стварыць мінае, запыт можа быць выкарыстана зноў, каб стварыць новы сертыфікат з новай датай заканчэння. Закрыты ключ, вядома, неабходна для шыфравання SSL. Пры захаванні гэтых файлаў, асэнсаваныя імёны дапаможа, напрыклад, mailserver.key.pem і mailserver.req.pem.

Запыт на подпіс сертыфіката выглядае наступным чынам:

-----BEGIN CERTIFICATE REQUEST-----
MIICJDCCAY0CAQAwgagxGzAZBgNVBAoTElRoZSBTYW1wbGUgQ29tcGFueTEUMBIG
A1UECxMLTWFpbCBTZXJ2ZXIxJDAiBgkqhkiG9w0BCQEWFXBvc3RtYXN0ZXJAc2Ft
cGxlLmNvbTETMBEGA1UEBxMKTWV0cm9wb2xpczERMA8GA1UECBMITmV3IFlvcmsx
CzAJBgNVBAYTAlVTMRgwFgYDVQQDEw9tYWlsLnNhbXBsZS5jb20wgZ8wDQYJKoZI
hvcNAQEBBQADgY0AMIGJAoGBAPJhc++WxcBaoDbJpzFbDg42NcOz/ELVFMU4FlPa
yUzUO+xXkdFRMPKo54d4Pf1w575Jhlu9lE+kJ8QN2st6JFySbc9QjPwVwl9D2+I3
SSf2kVTu+2Ur5izCPbVAfU0rPZxxK8ELoOkA1uwwjFz6EFuVvnHwlguonWKDtmYW
u7KTAgMBAAGgOzA5BgkqhkiG9w0BCQ4xLDAqMAkGA1UdEwQCMAAwHQYDVR0OBBYE
FLWaQsUVIQzWr58HtDinH1JfeCheMA0GCSqGSIb3DQEBBAUAA4GBAAbe0jrGEQ3i
tyVfy5Lg4/f69rKvDGs+uhZJ9ZRx7Dl92Qq2osE7XrLB1bANmcoEv/ORLZOjWZEY
NjMvuz60O7R8GKBrvb/YhAwWhIIt2LJqPkpAEWS0kY0AkoQcfZ7h6oC35+eJ7okg
Uu3WuE57RgcNt7/ftr0sG1jUyRwMLvhv
-----END CERTIFICATE REQUEST-----

Мы можам праглядзець змесціва, каб пераканацца, што наша просьба з'яўляецца правільным:


# openssl req -in req.pem -text -verify -noout

Вярнуцца да пачатку

Падпісанне сертыфіката

Зараз нам неабходна дадаць частка файла канфігурацыі, які займаецца быць сертыфікацыі. У гэтым падзеле будуць вызначаны шляхі розных частак, такіх як базы дадзеных, сертыфікатаў, і зачынены ключ. Яна таксама дае некаторыя базавыя значэнні па змаўчанні. Уключыць наступныя ў openssl.cnf перад раздзел [REQ]:

---Begin---
[ ca ]
default_ca		= CA_default

[ CA_default ]
serial			= $dir/serial
database		= $dir/index.txt
new_certs_dir		= $dir/newcerts
certificate		= $dir/cacert.pem
private_key		= $dir/private/cakey.pem
default_days		= 365
default_md		= md5
preserve		= no
email_in_dn		= no
nameopt			= default_ca
certopt			= default_ca
policy			= policy_match

[ policy_match ]
countryName		= match
stateOrProvinceName	= match
organizationName	= match
organizationalUnitName	= optional
commonName		= supplied
emailAddress		= optional

----End----
Каб падпісацца запыце мы зрабілі ў папярэднім крок, выканайце наступныя і адказваць на запыты. Звярніце ўвагу, што вы прасілі фразу PEM абранага раней:


# openssl ca -out cert.pem -config./openssl.cnf -infiles req.pem
Using configuration from./openssl.cnf
Enter PEM pass phrase:demo
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
organizationName      :PRINTABLE:'The Sample Company'
organizationalUnitName:PRINTABLE:'Mail Server'
emailAddress          :IA5STRING:'postmaster@sample.com'
localityName          :PRINTABLE:'Metropolis'
stateOrProvinceName   :PRINTABLE:'New York'
countryName           :PRINTABLE:'US'
commonName            :PRINTABLE:'mail.sample.com'
Certificate is to be certified until Dec  8 04:37:38 2002 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Гэты працэс абнаўлення базы дадзеных CA, і вырабляе два файла на выхадзе:

Зноў жа, вы можаце праверыць сертыфікат:


# openssl x509 -in cert.pem -noout -text -purpose | more

Сертыфікат мае як закадаваныя версіі і чалавечага разумення версіі ў тым жа файле. Вы можаце здзіраць чалавечага разумення частка наступным чынам:


# Cert.pem tmp.pem М. В.
# OpenSSL x509-у-па-за cert.pem tmp.pem

Вярнуцца да пачатку

Устаноўка сертыфіката і ключа

Гэта залежыць ад дадатку. Некаторыя хочуць ключ і сертыфікат ў адным файле, а іншыя хочуць іх па асобнасці. Камбінуючы іх лёгка зрабіць з:


# Key.pem cert.pem коткі> ключ-cert.pem

Пасля гэтага кроку, у вас ёсць тры усталёўваных кампанентаў, каб выбраць з:

Скапіяваць адпаведныя файлы ў месцах, указаных у інструкцыях для вашага дадатку і сістэмы. Перазагрузіце прыкладанняў, і вы знаходзіцеся ў аперацыі з новым сертыфікатам.

Apache

Apache мае асобныя дырэктывы для ключа і сертыфіката, таму мы працягваем кожны ў сваім уласным файле. Гэтыя файлы павінны захоўвацца па-за поддерева DocumentRoot, таму разумная структура каталогаў можа быць:

FileComment
/home/httpd/htmlApache DocumentRoot
/home/httpd/sslSSL-related files
/home/httpd/ssl/cert.pemSite certificate
/home/httpd/ssl/key.pemSite private key

У <VirtualHost> дырэктывы для сайта (што, вядома, павінны быць на порт 443), уключаюць дырэктывы, якія паказваюць на гэтыя файлы:


<VirtualHost 192.168.1.1:443>
   ServerName mail.sample.com
   DocumentRoot/home/httpd/html
  ... other directives for this site...
   SSLEngine on
   SSLLog/var/log/ssl_engine_log
   SSLCertificateFile/home/httpd/ssl/cert.pem
   SSLCertificateKeyFile/home/httpd/ssl/key.pem
</VirtualHost>

Stunnel

Stunnel выкарыстоўваецца як SSL абгортку для нармальнага неабароненых паслуг, такіх як IMAP і POP. Ён прымае ў якасці аргументаў (паміж іншым) службы для выканання, а размяшчэнне сертыфікат і зачынены ключ.

Ключ і сертыфікат прадастаўляецца ў тым жа файле. Яны могуць пайсці куды-небудзь, але ў добрым месцы можа быць / і г.д./ SSL/ сертыфікаты. Пакажыце яго ў камандным радку Stunnel наступным чынам:


stunnel -p/etc/ssl/certs/key-cert.pem <other stunnel args...>

Працяг варта...

Вярнуцца да пачатку

Распаўсюд CA сертыфікат

Гэта, нарэшце, крок, які спыняе кліентаў з скаргамі аб ненадзейных сертыфікатаў. Адправіць cacert.pem для тых, хто збіраецца выкарыстоўваць ваш абароненых серверах, таму яны могуць ўсталяваць у свой ??браўзэр, паштовы кліент, і г.д. у якасці каранёвага сертыфіката.

Вярнуцца да пачатку

Абнаўленне сертыфікатаў

Ваш сертыфікат ланцужка можа прывесці да паломкі з-за заканчэння тэрміну дзеяння сертыфіката двума спосабамі:

У другім выпадку, у вас ёсць праца. Новы каранёвай сертыфікат ЦС павінен быць створаны і распаўсюджаны, і тады вашыя існуючыя сертыфікаты павінны быць адноўлены або паўторна падпісаў.

У першым выпадку, у вас ёсць два варыянты. Вы можаце ствараць новыя запыты падпісання сертыфіката і знака іх, як апісана вышэй, або (калі вы трымалі іх), вы можаце зноўку падпісваць арыгіналы запытаў. У любым выпадку, старыя сертыфікаты павінны быць адмененыя, а затым новыя сертыфікаты, падпісаныя і ўстаноўлены ў вашым бяспечных прыкладанняў, як апісана вышэй.

Вы не можаце аформіць два сертыфіката з тым жа агульнапрынятае назву, таму пратэрмінаваныя сертыфікаты павінны быць адмененыя. Сертыфікат у каталогу newcerts, вы можаце вызначыць яго імя файла, пяройдучы па спасылцы index.txt і пошук Common Name (CN) на ім. Імя файла індэкса плюс пашырэнне ". PEM", напрыклад "02.pem". Каб адклікаць сертыфікат:


# openssl ca -revoke newcerts/02.pem -config./openssl.cnf
Using configuration from./openssl.cnf
Enter PEM pass phrase: demo
Revoking Certificate 02.
Data Base Updated


Зараз, калі сертыфікат быў адкліканы, вы можаце паўторна падпісаць першапачатковы запыт, або стварыць і падпісаць новы, як апісана вышэй.

Вярнуцца да пачатку

Пачатак камерцыйнай Подпіс сертыфіката

Працэс у асноўным такі ж, як толькі што паказалі, але CA робіць большую частку яго. Вам трэба згенераваць запыт на подпіс сертыфіката, як паказана вышэй, а затым прадставіць яго для падпісання. Вы атрымаеце сертыфікат для ўстаноўкі.

Гэты сертыфікат будзе аўтаматычна давяраюць браўзэры кліента, як браўзэр мае сертыфікат камерцыйнага цэнтра сертыфікацыі ўбудаванымі Існуе няма неабходнасці распаўсюджваць што-небудзь.

Канфігурацыя, апісаная тут, можа быць недастаткова для гэтай мэты, а ёсць нашмат больш, што можа перайсці ў запыт. Розныя цэнтраў сертыфікацыі патрабуюць розных функцый у запыт сертыфіката подпісы, ні адзін з якіх мы сышлі ў тут. Гэты дадатковы матэрыял за межы бягучага рамкі гэтага дакумента.

Вярнуцца да пачатку

Публікацыя вашага CA сертыфікат

Вы можаце пакінуць сертыфікат на вашым вэб-сайце для запампоўкі. Калі вы зробіце гэта, вы павінны таксама размясціць спіс водгуку сертыфікатаў (CRL), а таксама сродкі адлюстравання сертыфікат, выдадзены яго серыйны нумар. Гэта за межамі бягучага рамкі гэтага дакумента.

Apache будзе служыць ваш сертыфікат ў форме, якая дае браўзэры, калі вы укажыце яго MIME-тып. Напрыклад, вы можаце выкарыстоўваць пашырэнне файла для загружанага сертыфікаты, і пакласці наступнае ў агульным раздзеле канфігурацыі Apache "CRT.":


AddType application/x-x509-ca-cert.crt

Цяпер вы можаце дадаваць сертыфікат для загрузкі са спасылкай як <a href="www.sample.com/ourrootcert.crt"> Нашы каранёвай сертыфікат </ A>, а калі спасылку варта браўзэр наведвальніка будзе прапаноўваць ўсталяваць сертыфікат.

CRL можа быць створаны наступным чынам:




# openssl ca -gencrl -crldays 31 -config./openssl.cnf -out rootca.crl

Працяг варта...

Вярнуцца да пачатку

Рэзюмэ

Зараз у вас ёсць досыць інфармацыі, каб ствараць і падпісваць сертыфікаты ад свайго імя. Хоць гэта даволі аб'ёмны дакумент, працэдура можа быць коратка лёгка.

Аднаразова

Налада, і стварыць сертыфікат каранёвага цэнтра сертыфікацыі.

Каманды


# mkdir CA

# cd CA
# mkdir newcerts private
# echo '01' >serial
# touch index.txt
# (IMPORTANT: Install and edit the configuration file shown below.)

# openssl req -new -x509 -extensions v3_ca -keyout private/cakey.pem\
-out cacert.pem -days 365 -config./openssl.cnf

Выхад

Файл Мэта
cacert.pem CA сертыфікат
прыватных/ cakey.pem CA закрыты ключ

Размеркаваць cacert.pem для вашых кліентаў.

За сертыфікат

Стварэнне запытаў на подпіс сертыфіката і падпісаць іх, падаючы адпаведныя значэння для агульнае імя і падраздзяленні.

Каманды


# openssl req -new -nodes -out req.pem -config./openssl.cnf
# openssl ca -out cert.pem -config./openssl.cnf -infiles req.pem
# cat key.pem cert.pem >key-cert.pem

Выхад

Файл Мэта
key.pem Сакрэтны ключ
req.pem Запыт на подпіс сертыфіката
cert.pem Сертыфікат
ключавыя cert.pem Камбінаваны ключ і сертыфікат

Устанавіць key.pem і cert.pem, ці проста ключ-cert.pem па меры неабходнасці для вашага сервера прыкладанняў.

За сертыфікат - абнаўлення

Адмяніць Тэрмін дзеяння сертыфіката мінуў, і зноўку падпісваць запыт.

Каманды


# openssl ca -revoke newcerts/<serial>.pem -config./openssl.cnf
# openssl ca -out cert.pem -config./openssl.cnf -infiles req.pem

Ўсталяваць новы сертыфікат такім жа чынам, як арыгінальныя.

Вярнуцца да пачатку

Канфігурацыя файла

(Гэты файл даступны для загрузкі.)
---Begin---
#
# OpenSSL configuration file.
#

# Establish working directory.

dir			=.

[ ca ]
default_ca		= CA_default

[ CA_default ]
serial			= $dir/serial
database		= $dir/index.txt
new_certs_dir		= $dir/newcerts
certificate		= $dir/cacert.pem
private_key		= $dir/private/cakey.pem
default_days		= 365
default_md		= md5
preserve		= no
email_in_dn		= no
nameopt			= default_ca
certopt			= default_ca
policy			= policy_match

[ policy_match ]
countryName		= match
stateOrProvinceName	= match
organizationName	= match
organizationalUnitName	= optional
commonName		= supplied
emailAddress		= optional

[ req ]
default_bits		= 1024			# Size of keys
default_keyfile		= key.pem		# name of generated keys
default_md		= md5			# message digest algorithm
string_mask		= nombstr		# permitted characters
distinguished_name	= req_distinguished_name
req_extensions		= v3_req

[ req_distinguished_name ]
# Variable name		  Prompt string
#----------------------	  ----------------------------------
0.organizationName	= Organization Name (company)
organizationalUnitName	= Organizational Unit Name (department, division)
emailAddress		= Email Address
emailAddress_max	= 40
localityName		= Locality Name (city, district)
stateOrProvinceName	= State or Province Name (full name)
countryName		= Country Name (2 letter code)
countryName_min		= 2
countryName_max		= 2
commonName		= Common Name (hostname, IP, or your name)
commonName_max		= 64

# Default values for the above, for consistency and less typing.
# Variable name			  Value
#------------------------------	  ------------------------------
0.organizationName_default	= The Sample Company
localityName_default		= Metropolis
stateOrProvinceName_default	= New York
countryName_default		= US

[ v3_ca ]
basicConstraints	= CA:TRUE
subjectKeyIdentifier	= hash
authorityKeyIdentifier	= keyid:always,issuer:always

[ v3_req ]
basicConstraints	= CA:FALSE
subjectKeyIdentifier	= hash

----End----
Вярнуцца да пачатку

Спіс літаратуры

Дадатковую інфармацыю можна атрымаць на наступных сайтах (у новым акне):

Popular Links
Published (Last edited): May 2 , source: http://www.eclectica.ca/howto/ssl-cert-howto.php