¹ï©óopenssl¨Ó»¡§Ú¤wµhW«Ü¤[¤F,©l²×¤£±o¨äªù¦Ó¤J,ÁöµM¥i¥H§ä¨ì¦p¦ó«Ø¥ß
key,
pemµ¥ªº¬ÛÃö«ü¥O,µM¦Ó«Ü¤Ö´£°Ñ¼Æªº¥Îªk¡A©Î¬Oªø½g¤j½×½Í±K½X¾Çªº²z½×,µ²ªG§ÚÁÙ¬O¤@ª¾¥b¸Ñ,´M¹Mºô¸ô¤]§ä¤£¨ì¤Jªùªº¦n®Ñ,¥H¤U¬O¤JªùªºÁ¿¸ÑÆ[©À(¤£¨Ï¥ÎÃø
À´ªº¦r²´),¤£½Íºtºâªk,¦ý¥i
À°§U§A«Ø
¥ß
Æ[©À,¦pªGn²`¤J½Ð°Ñ¦Ò¨ä¥¦ªº¸ê®Æ,§Ú¦b®Ñ§½§ä¨ìªº®Ñ¤£¦h,¨â¥»ì¤å/¤@¥»¤¤¤å,ì¤åopenssl(1300¥ª¥k),SSL and TLS
designing and Building Secure Systems(1200¤¸¥ª¥k),§Ú°Ñ¦Ò¤Wz®Ñ¥»,¤Î
¦p¦ó»s§@ SSL X.509 ¾ÌÃÒ¡H,¤Î
http://en.wikipedia.org/wiki/X.509
¥»¤å©|¦b¼¶¼g¤¤....
Secure Sockets
Layer protocol(SSL)¦³¦ó¥Î³B?
§Aªº¸ê®Æ¦bºô¸ô¤W¶Ç¿é¦w¥þ¶Ü¡H¥i¥H«Üª½±µ»¡¤£¦w¥þ¡A¦bºô¸ôµo®i¤§ªì¡A©Ò¦³¶Ç¿é¨ó©wªº«Ê¥]³£¬O©ú½X¨Ó¶Ç°e¡C¦Ó¥Bºô¸ôªº¶Ç¿é³£¬O¥H±µ¤Oªº¤è¦¡¨Ó¼h¼hÂà°e¡A¦]¦¹
¸ê®Æ¥i¥H«Ü®e©öªº³QÄd§T¡B½Æ»s¡B¿y×§ï¡C
¬°¤F¦w¥þªº½t¬G¡A
¸ê®Æ¥[±K¶}
©l³QÀ³¥Î¦b¶Ç¿é±¡A¥un¦bºô¸ô¶Ç¿é¬O½s½Xªºª¬ºA¤U,´N¥i¥H½T«O¸ê®Æ¤£©ö¥~¬ª,¦Ó½s½X¨Ó»¡¤@¯ë¨Ó»¡¤À¬°¨âºØ¡G
¹ïºÙ¦¡¥[¸Ñ±Kªk(½s½X¸Ñ½X¨Ï¥Î¦P¤@Ókey)
- ½s½X¡@key+ì©l¸ê®Æ¡Ð¡Ö½s½X¸ê®Æ
- ¸Ñ½X¡@key+½s½X¸ê®Æ¡Ð¡Öì©l¸ê®Æ
«D¹ïºÙ¦¡¥[¸Ñ±Kªk(½s½X¸Ñ½X¨Ï¥Î¤£¦Pªºkey)
- ½s½X¡@key1+ì©l¸ê®Æ¡Ð¡Ö½s½X¸ê®Æ
- ¸Ñ½X¡@key2+½s½X¸ê®Æ¡Ð¡Öì©l¸ê®Æ
¦]¹ïºÙ¦¡¥[¸Ñ±Kªk¨Ï¥Î¦P¤@§âkey¡A¦p¦ó§â¸Ó§âkey¶Ç¨ì¦¬¸ê®Æ¨Ï¥ÎªÌªº¤âùØ¡H¹ï¤è¦³§Aªºkey·|¤£·|°°³y§A°e¥X¸ê®Æ©O¡H³o±µ³s¦Ó¨Óªº¦w¥þ©Ê°ÝÃD¡AÅý¹ïºÙ
¦¡¥[¸Ñ±KªkªºµLªkº¡¨¬¦b³s½u·¾³q¶¥¬q
¡A
µM¦Ó¨ä¥[¸Ñ±Kªº³t«×¤ñ¸û§Ö
«D¹ïºÙ¦¡¥[¸Ñ±Kªkªºì²z
¥ý¨ú±o¤@Óprivate key (public key¬O¥i¥Ñprivate key©Òºtºâ¦Ó¨Óªº¡^

ì«h
1.private key¥u¦³§A¾Ö¦³(§An«OÅ@¥¦¤£³Q§O¤H¨ú±o),¦Ópublic key¬O¥i¤½¶}¦bºô¸ô¤W´²§G
2.¨Ï¥Î¥ô¦ó¤@Ókey¨Ó¥[±K¸ê®Æ,¥u¯à¥Ñ¬Û¹ïkey¨Ó¸Ñ±K¸ê®Æ
3.§O¤H¶Ç°e¸ê®Æµ¹§A,¥u¦³§A¯à¸Ñ,¦]¬°¨pÆ_¥u¦³§A¦³
²³æªºÂsÄý¾¹³s½u¨BÆJ(https)
- ÂsÄý¾¹¨Ï¥Îhttps¦Vºô¶¦øªA¾¹n¨D³s½u
- ºô¶¦øªA¾¹¶Ç°ecertificateµ¹ÂsÄý¾¹
- ÂsÄý¾¹Àˬdcertificate
- ÂsÄý¾¹¨Ï¥Îpublic key¥[±K"ÀH¾÷²£¥Íªº¹ïºÙ¦¡¥[±Kkey",¶Çµ¹ºô¶¦øªA¾¹
- ºô¶¦øªA¾¹¨Ï¥Î¹ïºÙ¦¡key¥[±Kn¶Ç°e¨ìÂsÄý¾¹ªº¸ê®Æ(¦]¬°¹ïºÙkey¹Bºâ¤ñ¸û§Ö)
- ÂsÄý¾¹¦Vºô¶¦øªA¾¹nªº¸ê®Æ¤]¨Ï¥Î¹ïºÙ¦¡key¥[±K
À³¥Î¹ê¨Ò:
¥H¤U°Ñ¦Òopenssl
Certificate cookbookªºIntroducing SSL and Certificates ¤@³¹,¥Î§Úªº»yªk¼g¥X
Alicen°e¤@«Ê«Hµ¹¥¦ªº»È¦æ,n±N¤½¥q±b¸¹ªº¬Y¤@¼Æ¶qªº¿ú¶×¥X¨ì¥t¤@Ó±b¸¹,¥L¤£n§O¤H¬Ý¨ì¥Lªº¤@¨Ç¸ê°T,¥u¦³»È¦æ¯à¬Ý¨ì,¦]¦¹¥L»Ýn¤@Ó½s½Xªº¤è
ªk,¥u¦³»È¦æ¥i¥H¬Ý¨ì¥Lªº¸ê®Æ,®Ú¾Ú³oÓÆ[ÂI§ÚÌ¥i¥H¨Ï¥Î«D¹ïºÙ¦¡ªº½s½X¨Ï¥Î»È¦æªº¤½Æ_¨Ó½s½X,³o¼Ë¥u¦³»È¦æ¨pÆ_¥i¥H¸Ñ±K¸Ó«H,¦ý¬O¦p¦ó½T©w«H¥ó¨S¦³¾D¥¦
¤H×§ï?
Message Digests(°T®§ºKn)
¨Ï¥Î¤@ºØ¼Æ¾Ç¨ç¦¡,±N¶l¥ó¹Bºâ²£¥Í¤@Ó¼ÆÈ(¤£¦Pªº«H¥óÃø¥H²£¥Í¬Û¦Pªºdigest,¦ý¤´¦³¥i¯à),³oÓ¼ÆÈºÙ¬°hash©Îmessage
digest,¦pªG¶l¥ó¦³Åܧó¹L,«h³oÓ¼ÆÈ¤]·|Åܧó,¦]¦¹¥i¥H¥Î¨ÓÀˬd¶l¥ó¹ï¬O§_³Q×§ï,¦]¦¹Alice¦b¶l¥ó¤¤¥[¤J¤Fdigest,µM¦Ódigest
¨S¦³½s½X,«h©Mì¨Ó¶l¥ó³£¥i¥H³Q×§ï,¦]¦¹¤£°÷¦w¥þ?
Digital signatures (¼Æ¦ìñ¦W)
¬°¤F½T»{¨Ï¥ÎªÌ§Ų́ϥΥt¤@Ó¾÷¨î¥s¼Æ¦ìñ¦W,±N¤Wzªºdigest¨Ï¥Î¦Û¤vªº¨pÆ_¨Ó¥[±K,¶l¥ó¥]§t¤F¨Ï¥Î»È¦æ¤½Æ_¥[±Kªº¶l¥ó+¨Ï¥Î¥»¤H¨pÆ_¥[±Kªº
digest+¥»¤H¤½Æ_,ªþ¤W¤½Æ_ªº¥Î·N¬O§O¤H¥i¥H¸Ñ¶}digest,ÁöµM¨pÆ_¥u¦³Alice¦³,¦ý§Ú¤´µLªk±oª¾½T©w¬Oaliceªº?
Certificates(¾ÌÃÒ)
²{¦bAlice¥i¥H¶Ç°e¥X¥h¨p¤Hªº¶l¥ó¨ì»È¦æ,¨Ãñ¦W,¨Ã½T©w¶l¥óµLªk³Q×§ï,µM¦ÓAlicen½T©w¥¦¨Ï¥Îªº¤½Æ_¬O¯u¥¿¨Ó¦Û»È¦æ,¦Ó»È¦æ¤]n½T©w
Aliceªº¤½Æ_¬O¨Ó¦ÛAlice,¦pªG»È¦æ¤ÎAlice³£¦³¤@Ó¾ÌÃÒÃÒ©ú¥L̬O½Ö(¦p¨¥÷ÃÒ),§Ú̳z¹LCertificate
Authority(¾ÌÃÒªº»{ÃÒ¤¤¤ß),À°§Ú̽T»{¨¥÷
Certificates Req(¾ÌÃÒn¨D)
§ÚÌn½Ð¾ÌÃÒ¤¤¤ßµo¾ÌÃÒ®É,¥²»Ý¦³"¾ÌÃÒn¨D"¨Ó¦V¾ÌÃÒ¤¤¤ßn¨Dµo,¥¦¬O¤@ºØÀɮ׮榡,§t¦³¾ÌÃÒ»Ýnªº¸ê°T,§A»Ýn¨pÆ_¨Óñµo
n¨D,¨pÆ_¬O¥ô¦ó
X.509?
l¥Í¦Ûx.500ªº¾ÌÃÒ(³o¬O¨ä¤¤¤@ºØ¾ÌÃÒ¦Ó¤v)
³o¬O¥]§t¤F¤@ÓCA ñÃÒªº¾ÌÃҤΤ½keyªº
¾ÌÃÒ¤º®e(½Ð°O¦í¤j·§ªº¤º®e)
¾ÌÃÒ¦³¤£¦Pªº®æ¦¡(¥H¤U¬O¤å¦r®æ¦¡)
µo§G¤HIssuer
¾ÌÃÒ
¾ÌÃÒ¾Ö¦³¤Hªº¤½Æ_
¤é´Á
ñ¦W(¨S¦³³Q×§ï)
(µ´¤£·|¥]§t¨pÆ_)
°ÆÀɦW.crtÅã¥Ü¦p¤U:
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 0 (0x0)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=TW, ST=Taiwan, L=Taipei, O=test Shipping co., Ltd., OU=computer , CN=csc /emailAddress=csc@test.com
Validity
Not Before: Mar 9 08:53:36 2005 GMT
Not After : Mar 9 08:53:36 2006 GMT
Subject: C=TW, ST=Taiwan, L=Taipei, O=test Shipping co., Ltd., OU=computer , CN=csc /emailAddress=csc@test.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:ce:cc:79:df:e6:f9:cb:11:4b:18:da:57:87:b2:
0c:6c:61:13:b2:3b:a8:7e:94:fb:8b:b3:5d:91:c5:
d1:52:4f:04:7c:fd:84:15:41:c0:c1:3e:c6:7d:ce:
f6:3a:b5:5b:08:97:70:0d:4c:0b:77:58:82:ba:36:
0d:c5:33:18:c5:55:a4:d2:1d:aa:ff:05:d8:b0:19:
7e:53:1d:21:52:ab:9d:aa:37:25:87:1c:f6:a9:1b:
e8:78:a9:f3:cf:b2:32:c7:15:d6:b7:c3:32:b2:2b:
6a:72:6c:ed:e9:68:ff:27:07:2e:29:12:e1:f1:51:
6f:c9:46:e5:78:54:4f:d2:9d
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
DF:B4:69:03:7C:3A:A3:CA:2E:93:47:AC:55:23:8B:4F:E6:42:19:5F
X509v3 Authority Key Identifier:
keyid:DF:B4:69:03:7C:3A:A3:CA:2E:93:47:AC:55:23:8B:4F:E6:42:19:5F
DirName:/C=TW/ST=Taiwan/L=Taipei/O=test Shipping co., Ltd./OU=computer /CN=csc /emailAddress=csc@ocean-pioneer.com
serial:00
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: md5WithRSAEncryption
7a:60:d2:c3:2c:a7:5a:77:0e:d8:c8:1f:0e:c4:74:99:9a:59:
f6:f6:f5:cf:e5:4d:96:c9:78:73:b2:46:02:f2:f3:6e:71:fc:
97:f5:76:0d:3a:2e:eb:e3:21:1d:c4:2a:ea:97:18:1d:76:a8:
dd:7f:24:a8:5c:23:34:32:b6:e3:ee:87:6a:a5:80:b3:7a:e5:
fc:70:ec:12:06:a1:4a:34:d4:69:0a:41:9b:0a:19:d7:82:64:
67:ea:3f:e4:2d:58:f1:cf:b7:38:d7:95:7c:7d:67:ae:6f:03:
82:79:1b:ac:7f:0c:bb:1d:1c:a7:f0:ec:fe:90:d7:81:9c:49:
af:53
-----BEGIN CERTIFICATE-----
MIIDxDCCAy2gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBozELMAkGA1UEBhMCVFcx
DzANBgNVBAgTBlRhaXdhbjEPMA0GA1UEBxMGVGFpcGVpMSkwJwYDVQQKEyBPY2Vh
biBQaW9uZWVyIFNoaXBwaW5nIGNvLiwgTHRkLjESMBAGA1UECxMJY29tcHV0ZXIg
MQ0wCwYDVQQDEwRjc2MgMSQwIgYJKoZIhvcNAQkBFhVjc2NAb2NlYW4tcGlvbmVl
ci5jb20wHhcNMDUwMzA5MDg1MzM2WhcNMDYwMzA5MDg1MzM2WjCBozELMAkGA1UE
BhMCVFcxDzANBgNVBAgTBlRhaXdhbjEPMA0GA1UEBxMGVGFpcGVpMSkwJwYDVQQK
EyBPY2VhbiBQaW9uZWVyIFNoaXBwaW5nIGNvLiwgTHRkLjESMBAGA1UECxMJY29t
cHV0ZXIgMQ0wCwYDVQQDEwRjc2MgMSQwIgYJKoZIhvcNAQkBFhVjc2NAb2NlYW4t
cGlvbmVlci5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM7Med/m+csR
SxjaV4eyDGxhE7I7qH6U+4uzXZHF0VJPBHz9hBVBwME+xn3O9jq1WwiXcA1MC3dY
gro2DcUzGMVVpNIdqv8F2LAZflMdIVKrnao3JYcc9qkb6Hip88+yMscV1rfDMrIr
anJs7elo/ycHLikS4fFRb8lG5XhUT9KdAgMBAAGjggEEMIIBADAdBgNVHQ4EFgQU
37RpA3w6o8ouk0esVSOLT+ZCGV8wgdAGA1UdIwSByDCBxYAU37RpA3w6o8ouk0es
VSOLT+ZCGV+hgamkgaYwgaMxCzAJBgNVBAYTAlRXMQ8wDQYDVQQIEwZUYWl3YW4x
DzANBgNVBAcTBlRhaXBlaTEpMCcGA1UEChMgT2NlYW4gUGlvbmVlciBTaGlwcGlu
ZyBjby4sIEx0ZC4xEjAQBgNVBAsTCWNvbXB1dGVyIDENMAsGA1UEAxMEY3NjIDEk
MCIGCSqGSIb3DQEJARYVY3NjQG9jZWFuLXBpb25lZXIuY29tggEAMAwGA1UdEwQF
MAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAemDSwyynWncO2MgfDsR0mZpZ9vb1z+VN
lsl4c7JGAvLzbnH8l/V2DTou6+MhHcQq6pcYHXao3X8kqFwjNDK24+6HaqWAs3rl
/HDsEgahSjTUaQpBmwoZ14JkZ+o/5C1Y8c+3ONeVfH1nrm8DgnkbrH8Mux0cp/Ds
/pDXgZxJr1M=
-----END CERTIFICATE-----
¦b«Ø¥ßCA®É»Ýn¿é¤Jªº«n°Ñ¼Æ

1.Common Name
2.Email Address
3.Organizational Unit Name
4.Organization Name
5.Locality name
6.State or Province name
7.Country Name
Issuer¬OñÃÒªº³æ¦ì
Subject ¬O¤Wz¸ê®Æ
¾ÌÃÒªº©µ¦ù
¤@¯ëªº¾ÌÃҨ䣬O¥H¯Â¤å¦rªº¤è¦¡¥X²{¦Ó¬O¥H¤U±:
.CER-DER½s½Xªº¾ÌÃÒ,¦³®É¬O´`§Çªº
.DER-DER½s½Xªº¾ÌÃÒ
.PEM-Base64½s½X¨Ï¥Î-----BEGIN CERTIFICATE-----,©M-----END CERTIFICATE-----",
.P7B
.P7C
¢Ñ¢Ï¡]¾ÌÃÒÅçÃÒ¤¤¤ß¡^
¥Ñ¤W§Ú̱oª¾¾ÌÃÒ¬O¥Î¨Ó¨úªº«H¥ôªº«n¸ê®Æ¡A¦ý¬O¦p¦ó¿ë»{¾ÌÃÒªº¯u°°©O¡H
º¥ý§Ú̦³´Xӳ̰ª(root)¾ÌÃÒ¤¤¤ß¬O§ÚÌ«H¥ô
¤Z¬O¸g¥Ñ¨äñÃÒªº¾ÌÃÒ³£¬O¥i¥H«H¥ôªº¡AµM¦Ó¾ÌÃÒ¬O¥Hª÷¦r¶ð«¬¦Ü¦h¨â¼hªºÃ±ÃÒ
root ca±ÂÅvca¥i¥Hñµo¾ÌÃÒ
¦ÓÅçÃÒ¾ÌÃÒ¥ý¦V¢Ñ¢ÏÅçÃÒ¡A¦pªG¤£»{±o¡A¥unroot CA»{±o´N¦n
¡¦pªG§AºÞ²z¤@Óºô°ì¨Ï¥Î¦Û¤vªºÃ±ÃÒx.509 ¡A¤]¤@¼Ën¦Û¤v«Ø¥ß®Ú¨pÆ_¡A¤Î®Ú¾ÌÃÒ,µM«á¥i¥H´À¦Û¤vªº¥D¾÷ñÃÒ
¡¦pªG¥Ñ¨ä¥¦ªº(°Ó·~/§K¶O)¾ÌÃÒ¤¤¤ß©Òñµo¾ÌÃÒ¡A§An·Ç³Æ¾ÌÃÒn¨Dµ¹§Aªº¾ÌÃÒ¤¤¤ß¡A¦b¸Ó¾ÌÃÒ¤¤¤ßñÃÒ¤§«á·|°eµ¹§A¤@Ó¾ÌÃÒÃÒ®Ñ,·íµM¤j³¡¥÷·|¥Ñroot
¾ÌÃÒ¤¤¤ß´£¨Ñ§A¤GÓ¥²nªº¸ê®Æ¨pÆ_/¾ÌÃÒ,¦ý§An´£¨Ñ¾ÌÃÒªº¬ÛÃöÄæ¦ì¸ê°T
¥Ñ¤W±oª¾¾ðª¬ªº¶¡
SSL /TLS
SSL¡]Secure Sockets Layer)/¬ONetscape ©Òµo©ú¤@ªººØ³s½u¦w¥þªº¾÷¨î¡A«á¨Ó²£¥Í¤F·sTLS(Transport
Layer Security) ¡A¨ä®t§O¦p¤U¡G
1.SSL¬O¥þµ{¨Ï¥Î¡A¦pªGì¨Ó¨Ï¥Î«D½s½Xªº³s½u¡AYn¶i¤J½s½Xªº³s½u¡An¥Ñ¥t¤@Óport³s½u¶i¤J
2.TLS¬O¦b¦P¤@Ó³s½u¤¤¥i¥H¨Ï¥Î±Ò°ÊTLSªºÃöÁä¦r¶i¤J,¦P¼Ë¥i¥H°h¥X¬°¤@¯ëªº³s½u
¦]¦¹¨Ï¥Îsslªºdaemonn¨Ï¥Î¥t¤@Óport¨Óµ¥«Ý§O¤H¨Ó³s½u¡A¦Ótls¬O¨Ï¥Îì¨Óªºport
¨Ï¥ÎSSL¨ó©w
https: 443
pop3s:995
imaps:993
¨Ï¥ÎTLS¨ó©w¡A¥i¦bìport¥æ½Í,¤£¥Î¤Á´«¡A¦ýµ{¦¡¥²¶·n¤ä´©
pop3:110¡Ð¦h¤FSTLS©R¥O
imap:143 ¡Ð¦h¤FSTARTTLS©R¥O
smtp:25¡Ð¦h¤FSTARTTLS©R¥O
#ª©¥»
SSL 2.0 -°ò¥»¤W¤w¸g¼o±ó¤F
SSL 3.0 -¦n¹³¤£¬Û®eSSL 2.0
TLS 1.0 -©MSSL3.0 «D±`Ãþ¦ü
¨S¦³SSL 1.0ªºª©¥»,¦Ó¥B¦Uª©¥»¬O¤£¦P²Õ´©Ò©wªº
«ÂI»¡©ú
1.redhatªºopensslÀÉ®×
©Ò¦b,/usr/share/ssl¬O¨ä©Ò¦b¥Ø¿ý
2.¨pÆ_¬O¥i¥H¦Û¤v²£¥Íªº(openssl),¤]¥i¥H§O¤H´£¨Ñ,¤@¯ë¨Ï¥ÎªÌ
3.¾ÌÃÒn¨D,¦b§A¨ú±o¾ÌÃÒ«á¥i¥H§R°£,¥¦°ß¤@ªº¥Î³B¬O¥Î¨Ón¨D¾ÌÃÒ
4.³Ì«nªº¨âÓ¸ê®Æ,¨pÆ_/¾ÌÃÒ§An«OºÞ¦n
¥H¤W¬O¥Ñ¨pÆ_¨ì¾ÌÃÒªº¶¶§Ç
1.«Ø¥ß¨pÆ_(private key)
2.«Ø¥ß¾ÌÃÒn¨D(ca request)
3.CAñÃÒ¾ÌÃÒ(ca)
¦pªG§AºÞ¤@Óºô°ì
1.«Ø¥ßºô°ì¨pÆ_
2.«Ø¥ß¾ÌÃÒn¨D
¨pÆ_ªº¤j¤p
512/1024/2048......
openssl©R¥O¹ê§@
¤F¸Ñ¤FSSLªºÆ[©À¤§«á,¥H¤U§ÚÌn¹ê§@¨pÆ_/¾ÌÃÒn¨D/x509¾ÌÃÒ
¨pÆ_
¾ÌÃÒ(¦Û¤vñµo/§O¤Hñµo)
¥H¤U¤¶²Ð¦p¦ó¹ê§@,¨ä¹ê§@ªk¨S¦³¤@©w¨BÆJ,¦³¨Ç¨BÆJ¬O¥i¥H¦b¨Ö¦b¦P¤@¦æ©R¥O,¦]¦¹Åý¤H²£¥Í§x´b,µLªk±oª¾¨BÆJ¶¶§Ç,¨Ò¦p:¦³ªº¤¶²Ð¥ý²£¥Í¨pÆ_,¦A²£¥Í¾ÌÃÒ
n¨D,¦³ªº±N¨ä¦X¨Ö¦b¦P¤@©R¥O,¦]¦¹¡C
man genrsa (²£¥Í¨pÆ_)
man gendsa (¦P¤W)
man req («Ø¥ß¾ÌÃÒn¨D/¾ÌÃÒ²£¥Í¤u¨ã)
man ca
man x509
¤Wz¤GÓmanual¤ñman openssl¦³§ó¦h¸ê®Æ
1.²£¥Í¨pÆ_
¬O¨Ï¥Î®É¶¡ÀH¾÷²£¥Í,keyªºªø«×>64bit,¹w³]¬O1024,¬°¤F¦w¥þªº½t¬G¨Ï¥Îªøªº¤ñ¸û¦n¦p2048
openssl genrsa -des3
openssl gendsa
§A¥i¥H¨Ï¥Îopenssl°õ¦æ©R¥O¤@¨Ö²£¥Í¨pÆ_,¨Ï¥Î-keyout
2.²£¥Í¾ÌÃÒn¨D
¨Ï¥Îopenssl req ©R¥O,¥i²£¥Í PKCS#10 (Public-Key Cryptography Standards [
PKCS])
¾ÌÃÒn¨D.
¥¦¤]·|²£¥Í¤@¹ïÆ_°Í¨Ï¥Î "-new" ¦Ü©ó¦³®Ä®É¶¡«h¬O¨Ï¥Î "-days",openssl·|´£¥Ü§A¿é¤J¤@Ó±K½Xµ¹·s«Øªº¨pÆ_ ,
µM«á¾ÌÃÒn¨ä¥¦ªº¬ÛÃö¸ê®Æ:
openssl req -new -keyout newkey.pem -out newreq.pem -days 360\ -config /usr/share/ssl/openssl.cnf
Generating a 1024 bit RSA private key ..............++++++ .++++++ writing new private key to 'newkey.pem' Enter PEM pass phrase: Verifying - Enter PEM pass phrase:
You are about to be asked to enter information that will be incorperated 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. ----- Country Name (2 letter code) [DE]: State or Province Name (full name) []: Locality Name (eg, city) [Dummsdorf]: Organization Name (eg, company) [PSEUDONYM.ORG]: Organizational Unit Name (eg, section) [pseudonym.org]: Common Name (eg, YOUR name) [www.pseudonym.org]: Email Address []:hirntod@www.pseudonym.org
Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
|
¾ÌÃÒn¨D«Ø¥ß¦b newreq.pem
(¦p¤U,¨äÀɮ׫e«á¦³µù¸Ñ):
Sample Certificate Request
-----BEGIN CERTIFICATE REQUEST----- MIIBXTCCAQcCAQAwgaMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJNQTESMBAGA1UE ... Aty7AlcmN9XNwxUk1w0H3hk= -----END CERTIFICATE REQUEST-----
|
¨pÆ_«Ø¥ß¦b newkey.pemÀɮפ¤:
Sample Private Key
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,21F13B37A796482C
XIY0c7gnv0BpVKkOqXIiqpyONx8xqW67wghzDlKyoOZt9NDcl9wF9jnddODwv9ZU ... QxS2zwfKG1u+YqS1c2v5ecBgqW78DQLvxMkpYU8+xge7vDeoYKE14w== -----END RSA PRIVATE KEY-----
|
Signing the Certificate Request
¦øªA¾¹ªº¾ÌÃҨϥΠOpenSSL "ca" ©R¥O¨ÓñÃÒ,¦Ó "-policy"
¥Î¨Ó¤Á´« OpenSSLªºÀô¹ÒÀÉ, distinguished name fields ¬O¥²nªº, ¦ÓÄæ¦ìªº¶¶§Ç. ¦p½d¨Ò¤¤,§Ú̪ºÀô¹ÒÀɦb
"policy_anything"³o¤@¸`¤¤©Ò¦³ªº¥Øªº¦WºÙªºÄæ¦ì³£¤£¬O¥²nªº.
·í©R¥O°õ¦æ®É¥¦´£¥Ü¾ÌÃÒ
authority password:
Signing a Certificate Request to Create
Server Certificate
cat newreq.pem newkey.pem > new.pem openssl ca -policy policy_anything -out newcert.pem \ -config /usr/share/ssl/openssl.cnf -infiles new.pem
Enter PEM pass phrase: Check that the request matches the signature Signature ok The Subjects Distinguished Name is as follows countryName :PRINTABLE:'DE' stateOrProvinceName :PRINTABLE:'' localityName :PRINTABLE:'Dummsdorf' organizationName :PRINTABLE:'PSEUDONYM.ORG' organizationalUnitName:PRINTABLE:'pseudonym.org' commonName :PRINTABLE:'www.pseudonym.org' emailAddress :IA5STRING:'hirntod@www.pseudonym.org' Certificate is to be certified until May 12 15:39:33 1998 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
|
The server certificate is created in the file newcert.pem and is as
follows
(line-breaks added for issuer and subject):
Sample Server Certificate
issuer :/C=DE/SP=/L=Dummsdorf/O=PSEUDONYM.ORG/OU=pseudonym.org/ CN=www.pseudonym.org CA/Email=hirntod@www.pseudonym.org subject :/C=DE/SP=/L=Dummsdorf/O=PSEUDONYM.ORG/OU=pseudonym.org/ CN=www.pseudonym.org CA/Email=hirntod@www.pseudonym.org serial :01
Certificate: Data: Version: 0 (0x0) Serial Number: 1 (0x1) Signature Algorithm: md5withRSAEncryption Issuer: C=DE, SP=, L=Dummsdorf, O=PSEUDONYM.ORG, OU=pseudonym.org, CN=www CA/Email=hirntod@www.pseudonym.org Validity Not Before: May 12 15:39:33 1997 GMT Not After : May 12 15:39:33 1998 GMT Subject: C=DE, SP=, L=Dummsdorf, O=PSEUDONYM.ORG, OU=pseudonym.org, CN=www.pseudonym.org/Email=hirntod@www.pseudonym.org Subject Public Key Info: Public Key Algorithm: rsaEncryption Modulus: 00:a1:41:0b:0c:15:53:a5:a5:c4:37:a8:48:f5:79: 39:9f:18:2d:f4:bf:43:34:36:21:23:03:48:a5:65: cb:e2:f8:97:af:9c:7d:df:1e:9b:54:e2:ad:21:e3: 41:3e:54:9a:ce:dc:66:4d:61:59:fb:83:11:36:bf: 9c:3b:47:20:fb Exponent: 65537 (0x10001) Signature Algorithm: md5withRSAEncryption 63:77:e7:f8:aa:0b:90:5e:13:9e:4b:57:f1:0f:22:f9:4c:e3: 7a:aa:ff:a7:8a:2e:3c:1c:a2:92:07:bc:9f:22:3f:2f:13:3f: 60:62:57:a7:74:12:35:28:82:b1:00:2a:36:54:de:67:cd:a2: 9e:24:3e:98:be:14:4e:35:b7:7f
-----BEGIN CERTIFICATE----- MIICLTCCAdcCAQEwDQYJKoZIhvcNAQEEBQAwgZ4xCzAJBgNVBAYTAlVTMQswCQYD ... Ij8vEz9gYlendBI1KIKxACo2VN5nzaKeJD6YvhRONbd/ -----END CERTIFICATE-----
|
3.²£¥Í¾ÌÃÒ
4.Åã¥Ü¾ÌÃÒ¤º®e
¯Â¤å¦r¤º®e
openssl x509 -in ¾ÌÃÒÀɦW -noout -text
Åã¥Üserial
openssl x509 -in ¾ÌÃÒÀɦW -noout -serial
Åã¥ÜDN
openssl x509 -in ¾ÌÃÒÀɦW -noout -subject
Åã¥ÜMd5 fingerprint
openssl x509 -in cert.pem -noout -fingerprint
Åã¥Üsh1 fingerprint
.
sendmail ¨Ï¥Î¤º«Øªº³]©w
°Ñ¦Ò/etc/mail/sendmail.mc¤º»¡©ú
1.cd /usr/share/ssl/certs
2.Àˬdca-bundle.crt ¬O§_¦s¦b(¹w³]¦³).sendmail.pem¬O§_¦s¦b(¹w³]¨S¦³)
3.make sendmail.pem
4.×§ï/etc/mail/sendmail.mc,±N«e±ªºdnl
define(`confCACERT_PATH',`/usr/share/ssl/certs')
define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
5.cd /etc/mail ,make sendmail.mc >sendmail.cf
6.«·s±Ò°Êsendmail
´ú¸Õ
1.¨Ï¥Îtelnet localhost 25
2. ehlo "¦WºÙ"
3.Àˬd¦^À³¬O§_§tSTARTTLS
4.¦pªG¦³¤´¦³°ÝÃD,¸ÕµÛÅܧósendmail.cf ¤¤ªºlog ±N9->15,«½Æ1-3,µM«áÀˬd/var/log/maillog