機能が多いけど、なんだかんだと仕事でよく使うので別途まとめ。ちなみにおれおれ証明書とかでもいいんだけどhttp://www.cacert.orgで発行してもよい
KEY
とりあえずぐぐったらどこなとhitするけどぱぱっとみたいので。
# ランダムシード作成 openssl md5 /var/log/* > rand.dat # 秘密鍵作成 openssl genrsa -rand rand.dat -des3 -out key.pem 2048上記コマンドを実行すると対話形式で処理が進む
3534 semi-random bytes loaded Generating RSA private key, 1024 bit long modulus ..........................++++++ ......++++++ e is 65537 (0x10001) Enter pass phrase for key.pem: <- パスワード入力 Verifying - Enter pass phrase for key.pem: <- パスワード入力と実行すると-outでしたファイル名で鍵が作られる。-des3以外にも指定できるけど、一般的には-des3なので、これを指定しておく。何も指定なしの場合はパスワード入力は聞かれない。key.pemの中身は
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,941596987D4F0857 7KC0DM/qkQH3CKpIOq80GXMQ3kStoMzsJ6eMjENyv5eq3Rd5V9NVGsZ/00UkzsbL colS+XbC9Wb2a1IObM65ii9qsafVbJVpTcXNPIDP3yUAtsVXvjPnBxLNxuG3aORU tLV5pPIHrnJihC2XwO58jFapyhEMcGXo88Uj0NrT16xSayK4JrKGGtL1Lz0iH7sV B/mlCTrR1wNLrBqtPVUSQrrgyyIYcS2oqxYUCFTdCj9mXa7dmttMA6XuKgpicdrK 9RadR7/XxRKZxrbMZvnp8YrR3g4HrrLZAWfd/lq+07Wn3M/yt+vvl+hNtBnkNHa3 RsAG22M/JJj43UW85pNu2OA5DQ5PI88RRPGi6RfE/QKFuzIah6ilbxJfPJ5PBsKQ dWxLFpSt7+jz2SqEV3pR29484JpmughVyVEzgVXDZUpDbUjyh7aGqTuj9NCCI8gw Xsz+2BwPGC0/MBV8RYQoLcOEVxSyJ/CN2zGUAcloG8G2ImNcJEpBpxahlNXvalh8 x3adNNMHVW96xH6Xw7/uPa4rVfqLm7629ut8AooEKMA6Qa3Mcpd60ovIRn/5PCN6 DpQU/dVHf/tHYhPnIa4BQRC4tRvO4C50PxlHYQL1JupW/DCjJ3NfSXqvFdpvO+rw ju1B1X6MT4luox10VQRfn+yYT/dh8t3OlAjkRbjUOQFMQEIjMq7WjqjfxSEluFoq RiPZlPy6/uUHtzQOjCppDsDQ88zKlQvIaaaWVfg9OpklKYlTaTDdCX+oT2DlbUMV e/ry0TDWw4yqZdPo69DcJWMGcInHnB4ow7ZNPxI4TrLiG/enFbzDWg== -----END RSA PRIVATE KEY-----のようになる
セキュリティ的にはあまりよくないが、apacheの起動とかでパスワードきかれるはめになるので。
# はじめにとりあえずコピー cp -p key.pem key.pem.org # そのうえで鍵を抜く openssl rsa -in key.pem.org -out key.pem Enter pass phrase for key.pem: <- 秘密鍵作成時パスワード入力 writing RSA keyと実行するとkey.pemからパスワードがなくなる。catとかで確認すること
認証局(verisignとかcybertrustとか)に証明書を発行してもらうための証明書要求(CSR)を作成する。
CSR作成と同時に秘密鍵を作成する方法もあり。
openssl req -new -key key.pem -out csr.pem 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. ----- Country Name (2 letter code) [GB]:JP State or Province Name (full name) [Berkshire]:Osaka Locality Name (eg, city) [Newbury]:Osaka-shi Organization Name (eg, company) [My Company Ltd]:holly Ltd Organizational Unit Name (eg, section) []:holly Common Name (eg, your name or your server's hostname) []:common_name Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:入力なしでやりたい場合は-subjオプションをつけて入力する情報を指定すればよい
openssl req -new -key key.pem -subj '/C=JP/ST=Osaka/L=Osaka-shi/O=holly Ltd/OU=holly/CN=common_name' -out csr.pemCommon Nameは設定するサーバ名にあわせておくこと。その他はおれおれ証明書を作るときなら問題ないけど、ちゃんとした申請をする場合は正規データを入力する。入力するとcsr.pemが生成される。
CSR作成と同時に秘密鍵を作成する方法もあり。
openssl req -new -text -out csr.pem -keyout key.pem作成したcsr.pemは↓みたいになる
-----BEGIN CERTIFICATE REQUEST----- MIIBqzCCARQCAQAwazELMAkGA1UEBhMCSlAxDjAMBgNVBAgTBU9zYWthMRIwEAYD VQQHEwlPc2FrYS1zaGkxEjAQBgNVBAoTCWhvbGx5IEx0ZDEOMAwGA1UECxMFaG9s bHkxFDASBgNVBAMMC2NvbW1vbl9uYW1lMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB iQKBgQDr8CvoKKK5IjqqFQ/ub0hLGdIIwoA53FphED4FzpokF94LBz5w4YA6P6Uf OJ0/Jt0oDnYlKiwA0j6PgW2srk+BCKLxOiC4rr/RaXrqGxO5zpoB6Sf5AJMzqK2O Yyb8J3HbIWoc789m+/aw0GSp9p3o1G1+jrD2DTEUFNtjmBKSHQIDAQABoAAwDQYJ KoZIhvcNAQEFBQADgYEA6LHx6GpeyJcb+pzfLD9rs6jJMjBSzI4sNmv5Ax6waJmc 4nVD/J1eFRrF9VyyKx0Ij7hgdp6aTDq0CklUDFT3+UPf8SRlwDl4g5Bc5bEuWJrH lLcdsoTBcNxFWY8nAM5nePiTNXCq1TmeNo3+F9vUP55rgo/XqeC9MK0WhIZGSho= -----END CERTIFICATE REQUEST-----ほんとならこれを認証局に送って(普通はフォームに貼り付ける形式が多い)、審査が終われば(あるんかね?)証明書(CRT)が送られる。
今回はおれおれなので、自分自身で証明する(これがおれおれといわれる所以)
# 作成したCSRを使っておれおれ証明書を作る openssl x509 -in csr.pem -out crt.pem -req -signkey key.pem -days 365 Signature ok subject=/C=JP/ST=Osaka/L=Osaka-shi/O=holly Ltd/OU=holly/CN=common_name Getting Private keyこれで証明書作成は完了。秘密鍵からいきなり証明書要求なしでCRTを作るには
openssl req -new -key key.pem -x509 -days 365 -out crt.pemのようにする。この場合はCSR作成時と同じく、各種情報入力が必要になる
- public key
openssl rsa -in key.pem -puboutCRT
openssl x509 -in crt.pem -pubkey -nooutBEGIN PUBLIC KEY - END PUBLIC KEYの間が同じことを確認
- modulus
KEY
openssl rsa -in key.pem -modulus -nooutCRT
openssl x509 -in crt.pem -modulus -noout結果が同じか確認。長くて見にくい場合は
openssl rsa -in key.pem -modulus -noout | md5sum openssl x509 -in crt.pem -modulus -noout | md5sumとかすると見やすい
作成されたX509証明書のテキスト表示
# とりあえず全部ごっそり表示 openssl x509 -in crt.pem -text Certificate: Data: Version: 1 (0x0) Serial Number: cc:d0:ec:a6:7c:00:7f:6e Signature Algorithm: sha1WithRSAEncryption Issuer: C=JP, ST=Osaka, L=Osaka-shi, O=holly Ltd, OU=holly, CN=common_name Validity Not Before: Dec 6 08:02:14 2008 GMT Not After : Dec 6 08:02:14 2009 GMT Subject: C=JP, ST=Osaka, L=Osaka-shi, O=holly Ltd, OU=holly, CN=common_name Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:a4:0e:10:7d:f6:cb:69:db:46:8a:01:b1:4f:84: d8:bb:75:6e:08:b1:ad:3c:e9:48:fe:a0:1b:1c:a8: 45:21:ae:32:fa:48:7f:66:19:49:34:b2:cd:ea:10: 9b:7b:64:a0:56:96:2e:b6:5d:53:c7:dc:79:6b:8c: e3:e0:77:e9:41:4c:0d:1d:4a:99:68:43:1f:e8:c0: bb:68:ac:56:8d:26:0a:71:c3:10:89:db:68:63:3a: c8:5f:b6:df:a5:a1:3c:86:3b:6b:ba:2c:a2:4b:45: 3b:b0:d2:8f:2c:fc:c8:7a:a2:5d:fb:7b:a7:00:5f: 25:4f:25:60:f3:25:2d:76:b3 Exponent: 65537 (0x10001) Signature Algorithm: sha1WithRSAEncryption 46:cb:9d:42:04:b8:f2:51:13:36:4d:32:88:59:28:62:b4:14: 24:3c:c2:0a:4c:4f:e9:e6:23:ac:b1:ef:80:0e:90:e9:7a:7b: 88:aa:d0:d1:0e:ac:d5:af:fc:b9:28:76:76:d3:0e:0f:83:8e: 85:6f:58:90:67:73:b7:5e:2f:83:c5:09:58:9f:df:67:11:18: 7a:6e:fa:ad:51:43:f6:c1:e1:d1:21:4b:5d:80:32:81:65:ff: e8:fa:67:a2:bf:22:c1:74:78:06:2f:48:14:d3:c1:52:a4:56: 24:b7:3c:8d:df:16:43:66:99:db:74:8e:f3:26:fb:c7:a9:19: 54:27 -----BEGIN CERTIFICATE----- MIICbzCCAdgCCQDM0OymfAB/bjANBgkqhkiG9w0BAQUFADB8MQswCQYDVQQGEwJK UDEOMAwGA1UECBMFT3Nha2ExEjAQBgNVBAcTCU9zYWthLXNoaTESMBAGA1UEChMJ aG9sbHkgTHRkMQ4wDAYDVQQLEwVob2xseTElMCMGA1UEAxMcZmVkb3JhOC5lbmRs ZXNzLW5hbWVsZXNzLnh4eDAeFw0wODEyMDYwODAyMTRaFw0wOTEyMDYwODAyMTRa MHwxCzAJBgNVBAYTAkpQMQ4wDAYDVQQIEwVPc2FrYTESMBAGA1UEBxMJT3Nha2Et c2hpMRIwEAYDVQQKEwlob2xseSBMdGQxDjAMBgNVBAsTBWhvbGx5MSUwIwYDVQQD ExxmZWRvcmE4LmVuZGxlc3MtbmFtZWxlc3MueHh4MIGfMA0GCSqGSIb3DQEBAQUA A4GNADCBiQKBgQCkDhB99stp20aKAbFPhNi7dW4Isa086Uj+oBscqEUhrjL6SH9m GUk0ss3qEJt7ZKBWli62XVPH3HlrjOPgd+lBTA0dSploQx/owLtorFaNJgpxwxCJ 22hjOshftt+loTyGO2u6LKJLRTuw0o8s/Mh6ol37e6cAXyVPJWDzJS12swIDAQAB MA0GCSqGSIb3DQEBBQUAA4GBAEbLnUIEuPJREzZNMohZKGK0FCQ8wgpMT+nmI6yx 74AOkOl6e4iq0NEOrNWv/LkodnbTDg+DjoVvWJBnc7deL4PFCVif32cRGHpu+q1R Q/bB4dEhS12AMoFl/+j6Z6K/IsF0eAYvSBTTwVKkViS3PI3fFkNmmdt0jvMm+8ep GVQn -----END CERTIFICATE-----serial
openssl x509 -in crt.pem -serial -nooutissuer(発行者情報)
openssl x509 -in crt.pem -issuer -nooutCSR情報
openssl x509 -in crt.pem -subject -noout証明書開始日時
openssl x509 -in crt.pem -startdate -noout証明書有効期限
openssl x509 -in crt.pem -enddate -noout
/etc/httpd/conf.d/ssl.confのSSLCertificateKeyFile、SSLCertificateFileという項目があるので、それぞれKEY, CRTのパスを指定する。で再起動
/etc/rc.d/init.d/httpd restart今回はapacheの設定だけ書いたけど、このkey pairはdovecot, postfixなどの他のアプリでも流用できる。
おれおれ証明書の作成をもう少しだけ簡単にできる。
cd /etc/pki/tls/certs make server.key make server.crt途中でいろいろ聞かれるが上記手順がわかるなら問題ないので省略
要は暗号、複合は同じ鍵(パスワード)で行う。暗号化方式はいろいろあって迷う。
openssl enc -hと実行すると
unknown option '-h' options are -in <file> input file -out <file> output file -pass <arg> pass phrase source -e encrypt -d decrypt -a/-base64 base64 encode/decode, depending on encryption flag -k passphrase is the next argument -kfile passphrase is the first line of the file argument -md the next argument is the md to use to create a key from a passphrase. One of md2, md5, sha or sha1 -K/-iv key/iv in hex is the next argument -[pP] print the iv/key (then exit if -P) -bufsize <n> buffer size -engine e use engine e, possibly a hardware device. Cipher Types -aes-128-cbc -aes-128-cfb -aes-128-cfb1 -aes-128-cfb8 -aes-128-ecb -aes-128-ofb -aes-192-cbc -aes-192-cfb -aes-192-cfb1 -aes-192-cfb8 -aes-192-ecb -aes-192-ofb -aes-256-cbc -aes-256-cfb -aes-256-cfb1 -aes-256-cfb8 -aes-256-ecb -aes-256-ofb -aes128 -aes192 -aes256 -bf -bf-cbc -bf-cfb -bf-ecb -bf-ofb -blowfish -cast -cast-cbc -cast5-cbc -cast5-cfb -cast5-ecb -cast5-ofb -des -des-cbc -des-cfb -des-cfb1 -des-cfb8 -des-ecb -des-ede -des-ede-cbc -des-ede-cfb -des-ede-ofb -des-ede3 -des-ede3-cbc -des-ede3-cfb -des-ede3-ofb -des-ofb -des3 -desx -desx-cbc -rc2 -rc2-40-cbc -rc2-64-cbc -rc2-cbc -rc2-cfb -rc2-ecb -rc2-ofb -rc4 -rc4-40とずらずらでてくるので*3、とりあえず-aes-256-cbcを選んでみる
openssl enc -aes-256-cbc -e -in hogehoge.txt -out hogehoge.txt.priv enter aes-256-cbc encryption password: <- パスワード入力 Verifying - enter aes-256-cbc encryption password: <- パスワード入力これでhogehoge.txt.privに暗号化されたファイルとなる。復元時は
openssl enc -aes-256-cbc -d -in hogehoge.txt.priv -out hogehoge.txt enter aes-256-cbc encryption password: <- パスワード入力
パスワード暗号化は公開鍵で(誰でも)、複号化は秘密鍵で行う(限られた人のみ)。共通鍵暗号方式は暗号化/復号化両方とも限られた人のみ。
秘密鍵、公開鍵の作成方法はapache-ssl設定参照
公開鍵を使って暗号化
秘密鍵、公開鍵の作成方法はapache-ssl設定参照
公開鍵を使って暗号化
openssl rsautl -encrypt -pubin -inkey pubkey.pem -in hogehoge.txt -out hogehoge.txt.privhogehoge.txt.privを複号化する時は秘密鍵を使う
openssl rsautl -decrypt -inkey key.pem -in hogehoge.txt.privパスワードを聞かれるので、key.pem作成時のパスワードを入力すれば複号化完了。
署名作成
openssl dgst -md5 -sign key.pem -out hogehoge.sig hogehoge.txthogehoge.txtは、hogehoge.sigの署名元ファイルと同一か確認
openssl dgst -md5 -verify pubkey.pem -signature hogehoge.sig hogehoge.txt Verified OK
# ex: vuXa.Yn/i/FPg openssl passwd hogehoge echo -n hogehoge | openssl passwd -stdin
# ex: $1$0TMIVCoS$9ULHArttQoD8f2N3u3r2a1 openssl passwd -1 hogehoge echo -n hogehoge | openssl passwd -1 -stdin
http://httpd.apache.org/docs/2.2/misc/password_enc...をみて知ったがopensslで出来るようだ
# ex: $apr1$NvXEOMET$Znj9IS/D5YCeoVzI1bW.z1 openssl passwd -apr1 hogehoge echo -n hogehoge | openssl passwd -apr1 -stdin
hogehoge.txtの中身をbase64 encodeしてhogehoge_base64.txtに書き出す
openssl enc -base64 -e -in hogehoge.txt -out hogehoge.txthogehoge_base64.txtをもとの状態に戻す
openssl enc -base64 -d -in hogehoge_base64.txt -out hogehoge_decode.txt
openssl dgst -sha1 hogehoge.txt SHA1(hogehoge.txt)= c0869b72c5606d22d92a6ac986686bb87485a25bともにmd5sum, sha1sumコマンドの結果とおなじになる
This makefile allows you to create: o public/private key pairs o SSL certificate signing requests (CSRs) o self-signed SSL test certificates To create a key pair, run "make SOMETHING.key". To create a CSR, run "make SOMETHING.csr". To create a test certificate, run "make SOMETHING.crt". To create a key and a test certificate in one file, run "make SOMETHING.pem". To create a key for use with Apache, run "make genkey". To create a CSR for use with Apache, run "make certreq". To create a test certificate for use with Apache, run "make testcert". To create a test certificate with serial number other than zero, add SERIAL=num Examples: make server.key make server.csr make server.crt make stunnel.pem make genkey make certreq make testcert make server.crt SERIAL=1 make stunnel.pem SERIAL=2 make testcert SERIAL=3いろいろ使える
拡張子.pemでファイルを指定するとキーペアを作成できるようなので
make /path/to/hoge.pem umask 77 ; \ PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \ PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \ /usr/bin/openssl req -utf8 -newkey rsa:1024 -keyout $PEM1 -nodes -x509 -days 365 -out $PEM2 -set_serial 0 ; \ cat $PEM1 > /path/to/hoge.pem ; \ echo "" >> /path/to/hoge.pem ; \ cat $PEM2 >> /path/to/hoge.pem ; \ rm -f $PEM1 $PEM2 Generating a 1024 bit RSA private key .....++++++ .........................++++++ writing new private key to '/tmp/openssl.eo2560' ----- 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. ----- Country Name (2 letter code) [GB]:JP(国別コード) State or Province Name (full name) [Berkshire]:Osaka(都道府県) Locality Name (eg, city) [Newbury]:Osaka-shi(市町村) Organization Name (eg, company) [My Company Ltd]:secret company Ltd(会社名) Organizational Unit Name (eg, section) []:(部署名) Common Name (eg, your name or your server's hostname) []:perl.dev-nat.priv(common name) Email Address []:(空でいい)とすると
-----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQDUgvmU1juC/0A45SPFr9IePEljJtcTbC9VrsNGDctzaiuytJse JJa4NrD4fLiAz4MLTzqRM/pH8eL18ujCDMk6Cj03+qB5voG+hjAoneqTaumTmGqR OLF4vxq4/9QTOQkkIvGnBVftlTqSdjUqd01bfqPGwi/lg2znh/j9iIDxKQIDAQAB AoGBALrSAbN0upCo8L6TwmTx8lgeS63c4Urz2pEKuCSH0AnAlnXeDFftdoqvmdh5 XIHw65Uvq58nAKnq3cm2KCUftG21pIU932WDPbJIe4uVbw7FDzeKPMjBn95coI+l Y8Xv3fDvg8ZBNd1n0Z8ZDABqmtV3sBecYEEO5XDLRDspR7CZAkEA6gw0XLW02H+v 9Y7LF5Dayz/Od7uKthg+hSw4tXKf4A58qM9VyGjixO7puTowWYy8vz3WNw3QdUoT k2O4WjJJlwJBAOhxqUE+UOWsgaf8RHN0VgZgQ+Y3ah6jSYt44AuW8Vqmfkodq6yD 1sGwqWAFMvrN4z6GWkaU3aHpR2QQAwe+cz8CQFiXbA6XvS+iDZHOjjOKYjdDHL0X oSbSQIAaQBD2pWujMC6Z5KeqhAP1R0UUsI6FBkEBgB9wvDJZatWEjpidplsCQQCo sOROzzTSmhE2oqPizkkoM3DTgN/pAEP9jmm6v37FdRMuIr5WYw/WXaluYBeRYR5M YCDgHGWEfdIr0lsAobztAkEAwFTt2mlsKabBYslfhTqMYbEcGPWTbOFtA6YaCPOe g3WYIsoKxSy492c9uu3YRPNxaG3RY4kAuE0mUHG/J1Ma2A== -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIDEjCCAnugAwIBAgIBADANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQGEwJKUDEO MAwGA1UECBMFT3Nha2ExEjAQBgNVBAcTCU9zYWthLXNoaTEbMBkGA1UEChMSc2Vj cmV0IGNvbXBhbnkgTHRkMRowGAYDVQQDExFwZXJsLmRldi1uYXQucHJpdjAeFw0x MDA0MTMxNDI3MDFaFw0xMTA0MTMxNDI3MDFaMGoxCzAJBgNVBAYTAkpQMQ4wDAYD VQQIEwVPc2FrYTESMBAGA1UEBxMJT3Nha2Etc2hpMRswGQYDVQQKExJzZWNyZXQg Y29tcGFueSBMdGQxGjAYBgNVBAMTEXBlcmwuZGV2LW5hdC5wcml2MIGfMA0GCSqG SIb3DQEBAQUAA4GNADCBiQKBgQDUgvmU1juC/0A45SPFr9IePEljJtcTbC9VrsNG DctzaiuytJseJJa4NrD4fLiAz4MLTzqRM/pH8eL18ujCDMk6Cj03+qB5voG+hjAo neqTaumTmGqROLF4vxq4/9QTOQkkIvGnBVftlTqSdjUqd01bfqPGwi/lg2znh/j9 iIDxKQIDAQABo4HHMIHEMB0GA1UdDgQWBBTAAaszxheAKQIwdF5tJ/G4GUZZxTCB lAYDVR0jBIGMMIGJgBTAAaszxheAKQIwdF5tJ/G4GUZZxaFupGwwajELMAkGA1UE BhMCSlAxDjAMBgNVBAgTBU9zYWthMRIwEAYDVQQHEwlPc2FrYS1zaGkxGzAZBgNV BAoTEnNlY3JldCBjb21wYW55IEx0ZDEaMBgGA1UEAxMRcGVybC5kZXYtbmF0LnBy aXaCAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQAL6DtVyAiFWtIv gHIAERqvtBRJPBlrlYmMkabuKSis44PLJUuW6GiHlC3uCdYd7tJq2F9vXlOohc8Z hGMPlJwoyONoINCBGVGkjX5tptFzYWR6nLmTIhY0wFEGrlkgBVxR5mbK8NyJP4Yd 1WUZKoW99sr/L+LHaPsEAXbx9EgVhA== -----END CERTIFICATE-----連結したファイルが作成される
openssl ciphers -v DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1 DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1 AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5 KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1 EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1 EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1 DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1 DES-CBC3-MD5 SSLv2 Kx=RSA Au=RSA Enc=3DES(168) Mac=MD5 DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1 DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1 AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 RC2-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC2(128) Mac=MD5 KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=MD5 KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1 RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1 RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 RC4-MD5 SSLv2 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=MD5 KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=SHA1 EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au=RSA Enc=DES(56) Mac=SHA1 EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1 DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES(56) Mac=SHA1 DES-CBC-MD5 SSLv2 Kx=RSA Au=RSA Enc=DES(56) Mac=MD5 EXP-KRB5-RC2-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=MD5 export EXP-KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=MD5 export EXP-KRB5-RC2-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=SHA1 export EXP-KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=SHA1 export EXP-EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH(512) Au=RSA Enc=DES(40) Mac=SHA1 export EXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512) Au=DSS Enc=DES(40) Mac=SHA1 export EXP-DES-CBC-SHA SSLv3 Kx=RSA(512) Au=RSA Enc=DES(40) Mac=SHA1 export EXP-RC2-CBC-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export EXP-RC2-CBC-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 export EXP-KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=MD5 export EXP-KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=SHA1 export EXP-RC4-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export EXP-RC4-MD5 SSLv2 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export
例えばapache+mod_sslだと
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOWと指定されているので、
openssl ciphers 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW' -vすればこのciphersで有効な暗号スイート一覧が表示。だと思う。強度が強い順に表示したい場合は
openssl ciphers 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW'@STRENGTH -vと指定する
おれおれ証明書とかだと通信はできても証明書の検証まではできない。こんなエラーがでてるはず
CONNECTED(00000003) **省略** verify error:num=20:unable to get local issuer certificate verify return:1 **省略** verify error:num=27:certificate not trusted verify return:1 **省略** verify error:num=21:unable to verify the first certificate verify return:1 --- Certificate chain **省略** --- Server certificate -----BEGIN CERTIFICATE----- **省略** -----END CERTIFICATE----- subject=**省略** issuer=**省略** --- No client certificate CA names sent --- SSL handshake has read 1485 bytes and written 447 bytes --- New, TLSv1/SSLv3, Cipher is AES256-SHA Server public key is 2048 bit Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : AES256-SHA Session-ID: D5A852EBF46063EBAC0B0519BC9EC7219233315992A4B637ABA6161FC7B1EC2B Session-ID-ctx: Master-Key: 8119DDD2B1D953A2604E6C3C28AA1D5E80672476C31B97122ACC5806B9329A069B69A439F09CC918BCE210BF33841637 Key-Arg : None Krb5 Principal: None Start Time: 1294540901 Timeout : 300 (sec) Verify return code: 21 (unable to verify the first certificate)verify errorとかverify return code: 21とかでる。CA証明書を指定してあげるとでなくなる。各証明書のサイトに配布されているはず
openssl s_client -CAfile cacert.pem -connect $remotehost:$port結果は
SSL-Session: Protocol : TLSv1 Cipher : AES256-SHA Session-ID: D1A08153291C5CD5854D2CFF656A4A39718CE54CBC602FBB584E73B320C59061 Session-ID-ctx: Master-Key: 8665756515D0DBE617E08F1DFAABE5A4852622B257134C4C9AFBE006BDB8704E8B90FF1B2B3DFF0C56E94887341CCE42 Key-Arg : None Krb5 Principal: None Start Time: 1294541703 Timeout : 300 (sec) Verify return code: 0 (ok)となる
タグ
最新コメント