スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
web拍手

mixiのopenidでjavaでdiscoverできない問題

MIXIでOPENIDローカル環境からdiscoveryできない問題の解決策。




OPENIDをやる前にいる知識

1.OPENIDは、Yahooとか、Hatenaとか、MIXIとか関係なく、
一つの仕様ですべて動くものである

なので、OPENID2.0のだいたいの仕様を知っておく必要があります。


2.OPENIDは、OPENID1とOPENID2がある
OPENID1:
自分でOP(yahooとかHatenaとか)が発行したID(URL)を覚えておく必要がある。
あほ仕様。
OPENID2:
自分でOP(yahooとかHatenaとか)が発行したID(URL)を覚えておく必要はない。
各サイトで、ログインしたら、自分のサイトにもログインする。


3.SSLに対するJAVAの仕様も知っておく必要がある
今回説明します。





では、標記の問題に。

環境:
jboss423GA
struts
spring
openid4java0.9.5



mixiを見つけに行く時に
consumerManager.discover("https://mixi.jp");
という部分部分があるのですが、

ここで、

unable to find valid certification path to requested target

のような例外がでて落ちてしまいます。


ちなみに、この時点で、Yahoo、はてなに対しては、成功していました。



で、調べてみたのですが、

問題はSSLでした。


yahoo,はてなは、http://から始まるURLなので、SSLではありません。

mixiは、https://から始まるURLなので、JAVAのSSLの仕様が関係してきます。



簡単にSSLの仕様ですが、
SSLの目的には大きく二つ。

①暗号化されるか
②クライアント(PRのこと)が、サーバ(OPのこと)を信用するか


今回問題になっていたのは、②です。
自分で作ってるWEBサイトが、MIXIを信用していなければ、JAVAでエラーがでます。

なので、解決策は、MIXIを信用すること。

その方法は、以下です。


ブラウザで、https://mixi.jp/にいって、ブラウザ右下にでている、黄色の鍵マークをクリック。
「セキュリティ」タブ⇒詳細を表示ボタン⇒「詳細」タブ⇒エクスポート

保存画面で
ファイル名:mixi.jp
ファイルの種類:証明書パスを含むX509証明書(PEM)
にしてから、デスクトップに保存すると、mixi.jp.crtってファイルができる。
これが、ミクシィがちゃんとしてるっていうことの証明書。

これを、自分のPCのJAVA実行環境に覚えさせればいい。



使っているjreの
C:\Java\jre1.5.0_06\lib\security\cacerts
って、ファイルに、自分が信用したサイトの証明書達を登録してある。
これに、さっきとってきたMIXIの証明書を追加すればいい。

具体的には、
cacertsとmixi.jp.crtを合体させる。

その方法は、
例えば、C:\Java\jre1.5.0_06\lib\security\cacertsを
C:\javaにコピーする。
で、デスクトップにあるmixi.jp.crtもC:\javaに移動させる。
同じC:\javaフォルダに2ファイルある状態だ。


で、mixi.jp.crtが、どんなファイルか見てみる。
コマンドプロンプトから
C:\java>に行って、
以下のコマンドを打つと
keytool -printcert -file mixi.jp.crt
なんか証明書の内容が出てくる。
ま、よくわからんがでてきたらオッケ。

次に、合体作業をする。
以下のコマンドを実行。
keytool -import -alias mixi -keystore C:\java\cacerts -file mixi.jp.crt

パスワードを聞かれたら、「changeit」と入力。
なんか、デフォルトのパスワードがあるらしい。

すると、cacertsファイルのサイズが増えているはず。

===================================================
再度、mixiを追加しようとすると、
「証明書はインポートされませんでした。別名 はすでに存在します。」
とエラーが出るので、
いったん、
keytool -delete -alias mixi -keystore cacerts
で、昔の登録をcacertsから削除してもう一度
keytool -import -alias mixi -keystore C:\java\cacerts -file mixi.jp.crt
を実行するとうまくいく。
===================================================

で、作ったcacertsを元にあった所に戻してやればいい。
具体的には、
C:\Java\jre1.5.0_06\lib\security\cacerts
に戻す。

あ、戻す前に、もとのcacertsは、バックアップとっといたほうがいい。



以上で、もう一度、やってみると、
めでたくMIXIが表示された。


参考URL
参考2
参考2
参考3
参考4
web拍手
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
09 11
プロフィール
Author:たむたむR
い、いえ、小島よしおのファンサイトではありません。
ただ、思ったことを書いています。

 ~CONTENTS~

想うこと
性格を変える唯一の方法とは?
あなたは大人?それとも子供?
面接が苦手で緊張する方へ
短所を直すのは意味がない?
世界遺産を勝手にランキング
逆にインド人をだましてみる
本物の世界の絶景写真を集めました
おもしろ・すごい動画を集めました
インドの下痢と腹痛対策

試行錯誤でSEO対策
ヤフーカテゴリに登録された時の状況
ブログカテゴリランキングサイトの紹介
MIXIがGREEに勝った理由
GOOGLEとYAHOOの差
試行錯誤でSEO対策
title、description、bodyのSEO対策
SEOではリンクしすぎに注意
mixiのopenidでローカル環境からdiscoverできない問題
jbossのポートを8080から他のポート番号に変更する方法
jbossとstruts2でURLからwarファイル名を消したい
自宅サーバのDNSについて
メールサーバ
ビルドパスと実行パス
エクリプスで急にサーバが起動できなくなった時の対処
アパッチの設定で、ブラウザキャッシュし、サーバへのアクセス回数を減らす。
アパッチでWebシステムを高速化!
JAVAのソートで複数キーに簡単に対応する。
CRONの最も簡単な動かし方
データベースDBのサイズを知る方法
データベースに設定されている外部キー(foreign key)を確認する方法
LINUXで一体どこのファイルが重いか調べる方法
リナックスサーバで、ドメイン名でアクセス制限する方法(hosts.allowとhosts.deny)
apache のab試験で負荷テスト
JUNITでOutOfMemoryError: Java heap spaceと出る件
linuxのdfコマンドについて
linuxで、プロセスIDから実行プログラムがどこにあるかを調べる。
linuxで、ある日から更新されたファイルを検索する。


MYSQLでinnodb_buffer_pool_sizeを設定して速くする
MYSQLでindexを貼るとかalter tableの進捗具合を見る方法
MySQLで実行中のSQLをキャンセルする方法
MYSQLのinnodb_buffer_poolとかの簡単な仕組み
取ってきたGIFを綺麗に切り取ったりする方法
CENT OSのBashの話

株で儲けてみる
株の売買ルール
去年株で負けたけど確定申告で得する
株のお役立ちメモ
7億の男
たむたむRのリンク

アジアのベストシーズンと気候
中東のベストシーズンと気候
ヨーロッパのベストシーズンと気候
北アメリカ/北米のベストシーズンと気候
南米のベストシーズンと気候
オーストラリアのベストシーズンと気候
アフリカのベストシーズンと気候
ビーチのベストシーズンと気候
海外旅行のベストシーズンと気候
1月がベストシーズンの国と気候
2月がベストシーズンの国と気候
3月がベストシーズンの国と気候
4月がベストシーズンの国と気候
5月がベストシーズンの国と気候
6月がベストシーズンの国と気候
7月がベストシーズンの国と気候
8月がベストシーズンの国と気候
9月がベストシーズンの国と気候
10月がベストシーズンの国と気候
11月がベストシーズンの国と気候
12月がベストシーズンの国と気候
海外旅行おすすめ国都市ランキング
おすすめ世界遺産ランキング
海外旅行の持ち物チェックリスト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。