【技術力】OpenSSLを使ったCAの構築【爆発】
OpenSSLの証明書絡みで、12月の半ばごろ、
ある会社にCSR作成の作業を依頼しました。
そして1か月ほど経った本日、依頼先から下記のメールが来ました。
メールには下記の文面とともに「csr1」というファイルが添付されており、
中身を確認したら突っ込みどころ満載でぶっとびました。
どう見てもCSRです。
本当にありがとうございました。
*****(会社名)鈴木(仮名)です
いつもお世話になります
CSR情報を送付いたします
リナックス用エディターで確認願います
[root@www bin]# openssl md2 *>rand.dat
Read Error in X11
11232:error:0200B015:system library:fread:Is a directory:bss_file.c:167:
11232:error:20082002:BIO routines:FILE_READ:system lib:bss_file.c:168:
[root@www bin]# openssl md5 * > rand.dat
Read Error in X11
11233:error:0200B015:system library:fread:Is a directory:bss_file.c:167:
11233:error:20082002:BIO routines:FILE_READ:system lib:bss_file.c:168:
[root@www bin]# openssl genrsa -rand flora.dat -des3 1024>key.pem
-bash: 1024: 不正なファイル記述子です
[root@www bin]# openssl genrsa -rand flora.dat -des3 1024 > key.pem
0 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
.....................++++++
...........++++++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:
[root@www bin]# openssl req -new -key key.pem -out csr.pem
Enter pass phrase for key.pem:
unable to load Private Key
11236:error:06065064:digital envelope routines:EVP_DecryptFinal:bad decrypt:evp_enc.c:438:
11236:error:0906A065:PEM routines:PEM_do_header:bad decrypt:pem_lib.c:421:
[root@www bin]# openssl req -new -key key.pem -out csr.pem
Enter pass phrase for key.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]:tokyo
Locality Name (eg, city) [Newbury]:minatoku
Organization Name (eg, company) [My Company Ltd]:*****(伏せます)
Organizational Unit Name (eg, section) []:soumu service
Common Name (eg, your name or your server's hostname) []:*****(伏せます)
Email Address []:*****@*****.co.jp
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@www bin]# gedit
[root@www bin]# gedit
了解しました。
では削除依頼のほど、よろしくお願いいたします。 World Wide Web の root 様だから仕方が無いな。 というわけで、どう見ても作業履歴ログでした。
後日談があります。間に入っている会社によれば、
この彼は、これを送る以前に同様なものの
「スクリーンショット版」
を送ってきたそうです。
連鎖証明書がつくれなくて困ってます。
誰かたすけて。 keytoolとOpenSSL使いたいです。
@鍵作る
keytool -genkey -alias rsa -keystore KeyStore -keyalg RSA
A証明書要求書作る。
keytool -certreq -alias rsa -keystore KeyStore -file cert_req.csr
BCA作る。
./CA.pl -newca
CCSRを読み込んで、CA署名付き証明書発行
--ここで困ってます。
D連鎖証明書をインポート
keytool -import -alias rsa -keystore KeyStore -file ChainCert.cer
-----------------------------------------------------------------------
Cでのopensslを使用した手順を教えてください。
keytoolのマニュアルには、
連鎖証明書をimportするにはPKCS7でないとダメと書いてあるのですが。。
ttp://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/solaris/keytool.html
Fedora3でCAを立てようと
% CA -newca
とすると
openssl: error while loading shared libraries: libssl_gcc32.so.0: cannot open shared object file: No such file or directory
といわれました。
libssl_gcc32.so.0をlocateで探しましたがどこにもありません。
RPM Searchでlibssl_gcc32.so.0を含むパッケージを探しましたが出てこず。
どうすればいいのでしょうか? >>15ここの板の名前を100回唱えてから、顔洗って出直して来い どこで聞いたらいいかわからないので、
こちらに来ました。
opensslで鍵を作るだけの簡単なプログラミング
をc言語でするときなんですが、
・ヘッダーにincludeして関数を呼び出して鍵を作る方法
・シェルプログラミングみたいにコマンドラインを利用する方法
この2つがあるって言うことでよかったですか?
コマンドラインから手で入力して、
CAを構築したりしたんですが、
上記のような鍵を作るだけなど簡単なことでも新しくopensslのAPIの
関数の使い方も勉強しなければいけないのかなぁと思いまして。
プログラミング事態初心者なんですが、
よろしくお願いします。 Cなんか使わずに後者をシェルスクリプトで書けばいいんじゃないの?
Cを使うという要件の理由は何?
>>18
c言語でネットワークプログラミングの
基本的なことを勉強し終わって、
sslのサイトや本見ながら、
使い方を勉強しているところです。
openssl、シェル、いろんな知識が不足していて、
手がかりを探していました。
昨日c言語でopensslのAPIの使い方がちょっと書いてある
本を見つけたので、その本読んで勉強してみます。
シェルスクリプトでも大丈夫っていうアドバイスも
すごい助かりました。シェルスクリプトで
opensslが使えるかどうかもわからないレベルなので
シェルスクリプトについても勉強してみます。
ありがとうございました。 質問です。
SubjectDirectoryattributeに値を入れたCSRを発行したいのですが
どうすればいいのでしょうか?
Verは0.98eです。 おい、おれはwebprog板のphpのくだらねぇ質問スレの住民だけどよお
opensslの解説サイトがあったら教えろよ これみんなでやりませんか?
ちょっとした起爆剤になれば
もっと盛り上がると思いますよ
ブラウザから確認するためにもPHPでやりましょう。
講師もやりますよ。hatenaで聞いてきましょうか? OpenSSL ってビルドに perl がいるんだね・・・・
Makefile 作るために perl がいるってことか? 雑誌が減ってネット上の記事が頼りにされるようになってる時代だというのになー ネット上の記事の重要度が上がってるなら、放置しないで突っ込むべきでは? 自己署名CAたてたんだが、いまいちうまくいかんがな。むずい ここってCAの構築限定?
openssl ライブラリがらみ全般の話題ってどのスレいけばいいっすか?
質問)
openssl の rsa サブコマンドを使うとあらかじめ用意した公開鍵で
暗号化できますが、複数の公開鍵を用意してどれに対応する秘密鍵でも
復号できるようにはできないものでしょうか?
そもそも openssl の rsa サブコマンドでやるべきじゃなくて、
libopenssl を使ってツール作るべきなんでしょうか?
rsa サブコマンドでの暗号化の際にはたぶん何らかの共有鍵が
生成されていてそれを与えた公開鍵で暗号化しているのだと思うので、
複数の公開鍵を与えられればいいなぁと思ったのです。
利用例)
たとえば自分が死んだときでもあるファイル群は
嫁さん(が脳外にいたとして)が復号できるようにしておきたいとか。
>>29
その論理でいくと嫁さんが実体じゃなくてもいいってことになるな
電脳で構築された嫁か
悪くないな!
PGP などでメッセージ(なりファイルでもいいが)、暗号化して
送付する際に受取人が複数いる場合に、暗号化するには
次のようなステップをとる。
それと同じでは駄目?
1. メッセージを暗号化する鍵1(K1)を作成。
これは普通 共通鍵暗号(例:AES )の鍵として利用して、
メッセージを暗号。
2. 暗号化したメッセージの前に、 受取人がN 人いるとして、それぞれの秘密鍵で暗号化した
K1 をつける。
K1 encrypted by 1st Private Key for the 1st person.
K1 encrypted by 2nd Private Key for the 2nd person.
...
K1 encrypted by the private key of the N-th person.
これに暗号化されたメッセージをつけて送る:
K1 で暗号化されたメッセージ。
みたいな。
OpenSSLだけでやりたきゃsmimeコマンドでPKCS7バイナリを直接書き出すことも出来る。
pkcs7-smime ってのはつまりRSAで暗号化されたキーとそのキーで暗号化されたコンテンツを
まとめたバイナリの形式のことで、暗号化されたキーはいくつでも付加可能。
ただ、smimeを使うと、CAをでっちあげる必要があるだろう
生のRSA鍵ではなく、X.509証明書を使う必要があるので。
あと、rsaサブコマンドでは共通鍵は生成されない。たしか。
openssl version
と入力すると以下のようなエラーが出てしまい実行できない状態です。
どなたか解決方法ご存知の方、何卒ご教示お願い申し上げます。
環境:
Windows2003 Sever
Apache 1.3.33(Win32)
mod_ssl 2.8.22
OpenSSL 0.9.7f
表示されるエラーメッセージは「序数 3288がダイナミックライブラリ LIBEAY32.dllからみつかりませんでした」
です。
よろしくお願いいたします。更新まであと、1週間どうしよう…。 UNIX板なんですね…。
検索エンジンからきたので全く考慮しておりませんでした。すみません。
でもご教示いただけることございましたら何卒よろしくお願い申し上げます。
もうちょっとググり方考えればすぐ出てくるのにな。
ttp://blog.clouder.jp/archives/000708.html openssl-1.0.0-beta1.tar.gzが出てるんだが、
エイプリルフール? まて、それは孔明の罠だ。
OpenSSLが1.0を名乗るなんて偽物に間違いない。 RubyのOpenSSL情報少なすぎて死にたくなる。 rsaのprivate keyは何bits以上にすればよかとですか openssl 0.9.8eでプライベートCAを構築すると
証明書データベース(index.txt)ファイルの
有効期限や失効日時がASN.1 UTCTime形式のようで
Y2K問題と同様にまずい気がするんだが
1.0以降だと変更されてたりするのかな…? OpenSSLの脆弱性対策で、バージョンアップしたり、証明書を再発行しているんだろうな。 発行済み証明書全部 revoke して再発行したけど CRL がアホみたいに巨大化したから
もうCA局から作り直したくなったよ
やれやれ opensslの脆弱性が最近記事になってるやん
これ変な気がするんだよなぁ
メモリーをコピられてもさ、それってユーザー空間なわけじゃないのさ?
んで、ふつうさ、コネクション毎に別のプロセス立ち上げるだろ?
つまりね、別のユーザー空間にアクセスできるわけねえんだから
そもそもメモリーをコピーしたところでなんか見れるの?
ふつうcallocすりゃメモリは0で初期化されるだろ?
他のプロセスが使ってたメモリの内容がスタック領域とかに残ってるのか?
陰謀論なら、フリーソフトではなく商用ソフトを使わせたいとかいうことかもね
でも、スノーデンが正しいならむしろそっちのほうこそ仕込まれてる可能性があるわけで・・・・ というか、仮に1つのプロセスがすべてに対応する作りだと
そもそもそれ自体がセキュアーなアーキテクチャになってないという
ほんまにそういうつくりなのか? Apacheだっていちいちforkしないだろ
そんなことしたらパフォーマンス下がる >>50
「センシティブなデータ使い終わったらゼロクリアしろって言われてる」
って話はよく聞くけど、それを怠ってるんだろうね
>>52
Webアプリケーションといえば未だにCGIとPHPな2chで何を…
ここの住人にはprefork MPM以外の概念は通用しないよ Googleが暗号化を推進したいとかいってるのがすげえ気になるんだわ
よくわからないけど、SSLにつかう公開鍵って常に同じだったりするのか?
仮にそうなら相手のコンピュータの識別IDとして使えるよな >>50
それは設定によるだろ
1アクセスごとにforkしてアクセス終わったら終了する設定にしてるならそうだけど、
ふつうは、preforkして、かつ数百とか数千アクセスを処理すれば終了するような
設定にしてる人が多いんじゃね? うさんくさいレジストラ代行会社やうさんくさいネームサーバ管理会社を使うなってことだね >>50
>んで、ふつうさ、コネクション毎に別のプロセス立ち上げるだろ?
さすがUNIX板
1990年くらいで時が止まってるな あのぉ、これは、当日はいていく予定のTバックのことです。
Tバックというのは、あの部分が故意に、つまり意図的にですね、
そうゆう目的性と申しましょうか、方向性ていうかぁ、挿入のために、
破れているのれす! またOpenSSLの深刻なバグがみつかって情報の盗聴や偽のユーザーにアクセスされる恐れがある
最悪の場合、証明書の再発行がまた必要だろうな SHA-2 の証明書は OpenSSL 0.9.8 から使えますが,
OpenSSL 0.9.8 では SHA-2 を使った TLS/SSL の
暗号プロトコルには対応していない
という文章の意味がわからないです
これ、結局サーバではSHA2の証明書は使えない
ということじゃないの? 証明書で使うハッシュ関数と、暗号化通信で使うハッシュ関数の違い。 まだ、OpenSSLとか使ってる情弱がいたのかよ。 >>65
9月22日時点でOpenSSLがアップデートした修正版は、LibreSSLは同じ箇所を2年前に既に修正済み状態だった。
OpenSSL側はセキュリティに関してあまり関心がないか、修正できないか、自分たちのコードでさえどうなってるのか把握できないくらいぐちゃぐちゃになってるかのどっちかだろ。
たまから、OpenBSDは使われてない何万行ものコードを削除したんだろ。 >>69
OpenSSL使ってるのが情弱なら、情強は何使ってんだ?って話だろ? ホント、スレタイ通り爆発したなw
OpenSSLオワタ\(^o^)/ 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
45EAYK03MU さようなら、OpenSSL。
こんにちは、LibreSSL。 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方
時間がある方はみてもいいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
4S32B