<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Web技術日記</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/" />
    <link rel="self" type="application/atom+xml" href="http://www.dream-link.jp/neta/atom.xml" />
    <id>tag:www.dream-link.jp,2009-03-18:/neta//2</id>
    <updated>2011-07-05T05:08:56Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.24-ja</generator>

<entry>
    <title>mingで画像が赤くなる</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2011/07/ming.html" />
    <id>tag:www.dream-link.jp,2011:/neta//2.80</id>

    <published>2011-07-05T05:06:03Z</published>
    <updated>2011-07-05T05:08:56Z</updated>

    <summary>久々の更新です。 サーバーサイドでflashを作成するツールmingですが、出来...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="携帯" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>久々の更新です。</p>
<p>サーバーサイドでflashを作成するツールmingですが、出来上がったフラッシュ(バージョン4を指定)を携帯でみると赤くなることがあります。</p>
<p>これはflasの特殊仕様によるものなので、jpgパッチを当てれば治ります。</p>
<p>パッチのURLは分からなくなったので、興味のある方はネットで検索してみてください。</p>]]>
        
    </content>
</entry>

<entry>
    <title>imagemagickでピクセル情報取得</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2009/06/imagemagick.html" />
    <id>tag:www.dream-link.jp,2009:/neta//2.73</id>

    <published>2009-06-02T01:36:02Z</published>
    <updated>2009-06-02T01:40:11Z</updated>

    <summary>convert 画像ファイル名 txt: 出力結果 # ImageMagick ...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>convert 画像ファイル名 txt:</p>
<p>出力結果</p>
<p># ImageMagick pixel enumeration: 1,1,65535,RGBA<br />0,0: (65535,65535,65535,65535) #FFFFFFFFFFFFFFFF<br />0,1: (65535,65535,65535,65535) #FFFFFFFFFFFFFFFF<br />・・・</p>
<p>-crop 0x0+10+10などと併用することで、1ピクセルだけの情報取得も可能</p>]]>
        
    </content>
</entry>

<entry>
    <title>チャンク形式のHTTP1.1応答</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2009/04/http11.html" />
    <id>tag:www.dream-link.jp,2009:/neta//2.70</id>

    <published>2009-04-09T07:24:18Z</published>
    <updated>2009-04-09T07:34:09Z</updated>

    <summary>HTTP1.0応答の場合は、問題ないのですが、HTTP1.1応答の場合、ボディ部...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>HTTP1.0応答の場合は、問題ないのですが、HTTP1.1応答の場合、ボディ部がチャンク形式というちょっと変わった形式で返ってくるようです。</p>
<p>例えば、ボディ部が<br />abcdefghijklmnopqrstuvwxyz1234567890<br />の場合、HTTP1.0だとこれがそのまま返ってきますが、<br />HTTP1.1だと<br />1a+改行コード(1aは十進数に直すと26バイト、次のデータの長さ)<br />abcdefghijklmnopqrstuvwxyz+改行コード<br />10+改行コード<br />1234567890＋改行コード<br />0＋改行コード(データの終わり)<br />オプションデータ＋改行コード<br />オプションデータ＋改行コード<br />・・・・<br />という感じで返ってくるようです。</p>
<p>これを解析する場合のスクリプトは以下のような感じ。</p>
<p>&lt;?<br />$fp = fsockopen("アドレス", 80, $errno, $errstr, 30);<br />if (!$fp) {<br />&nbsp;&nbsp;&nbsp; echo "$errstr ($errno)&lt;br /&gt;\n";<br />} else {<br />&nbsp;&nbsp;&nbsp; $out = "GET HTTP/1.1\r\n";<br />&nbsp;&nbsp;&nbsp; $out .= "Accept: */*\r\n";<br />&nbsp;&nbsp;&nbsp; $out .= "Accept-Language: ja\r\n";<br />&nbsp;&nbsp;&nbsp; $out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n";<br />&nbsp;&nbsp;&nbsp; $out .= "Host: ホスト名\r\n";<br />&nbsp;&nbsp;&nbsp; $out .= "Connection: Keep-Alive\r\n\r\n";<br />&nbsp;&nbsp;&nbsp; fwrite($fp, $out);<br />&nbsp;&nbsp;&nbsp; while (!feof($fp)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $headers=fgets($fp, 4096);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(trim($headers)==""){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; $body="";&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; while (!feof($fp)) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $tmp = hexdec(fgets($fp));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!$tmp) break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $body=fread($fp, $tmp);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fgets($fp);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $body;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; fclose($fp);<br />}<br />?&gt;</p>]]>
        
    </content>
</entry>

<entry>
    <title>perlとPHPでの環境変数を伴うexecの違い</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/12/perlphpexec.html" />
    <id>tag:117.120.50.87,2008:/neta//2.58</id>

    <published>2008-12-05T09:08:05Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary>今日、半日くらい悩んだ出来事です。 とある仕様書を見てPHPでexecを利用して...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="perl" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>今日、半日くらい悩んだ出来事です。</p>

<p>とある仕様書を見てPHPでexecを利用して外部コマンドを実行するのですが、仕様書どおりなのになぜかうまくいかない。</p>

<p>環境変数が必要とあったので、$_SERVER['REQUEST_METHOD']や$_SERVER[QUERY_STRING']などにきちんと値が入っているか確認した上で試してみてもうまくいかない。</p>

<p>数時間後、しようがないのでperlに書き直して試した・・・なぜかうまくいく。</p>

<p>どうもperlでは、環境変数が渡されているがPHPだと渡されてないようだ。</p>

<p>そこでやっとこさ辿りついたのが、putenv。</p>

<p>putenv('REQUEST_METHOD='.$_SERVER['REQUEST_METHOD']);<br />
putenv('QUERY_STRING='.$_SERVER['QUERY_STRING']);<br />
した後、execするとやっとこさPHPでもうまくいきました。</p>

<p>ふぅ。</p>]]>
        
    </content>
</entry>

<entry>
    <title>auで動画などをDLさせるためのタグ</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/11/audl.html" />
    <id>tag:117.120.50.87,2008:/neta//2.57</id>

    <published>2008-11-22T01:00:28Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary><![CDATA[&lt;object data="ファイル名" type="MIMEタイプ" c...]]></summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="携帯" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>&lt;object data="ファイル名" type="MIMEタイプ" copyright="no" standby="表示文字"&gt;<br />
&lt;param name="disposition" value="au指定のデータ種別" valuetype="data"&gt;<br />
&lt;param name="size" value="ファイルサイズ" valuetype="data"&gt;<br />
&lt;param name="title" value="ダウンロードされるファイル名" valuetype="data"&gt;<br />
&lt;/object"&gt;</p>]]>
        
    </content>
</entry>

<entry>
    <title>ドメイン指定受信の解除</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/11/post-10.html" />
    <id>tag:117.120.50.87,2008:/neta//2.56</id>

    <published>2008-11-21T00:57:04Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary>2008/11/21現在の解除方法 ■DoCoMo http://docomo....</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="携帯" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>2008/11/21現在の解除方法</p>

<p>■DoCoMo<br />
http://docomo.ne.jp/cp/mailsetst.cgi</p>

<p>■KDDI<br />
http://imutl.ezweb.ne.jp/cgi2001/utl_menu.cgi</p>

<p>■Softbank<br />
Yahoo!ボタンからMySoftbankへアクセス<br />
↓<br />
各種変更手続き<br />
↓<br />
オリジナルメール設定･各種メール設定</p>]]>
        
    </content>
</entry>

<entry>
    <title>PHPで文章の最後を省略形にする</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/11/php.html" />
    <id>tag:117.120.50.87,2008:/neta//2.55</id>

    <published>2008-11-20T00:50:12Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary>mb_strimwidthで良い気がするのだけど、動作が不安定という話を聞いたの...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>mb_strimwidthで良い気がするのだけど、動作が不安定という話を聞いたので、作ってみた。<br />
どちらも文字コードには注意</p>

<p>$str = "あいうえおかきくけこさしすせそ';<br />
$tmp = mb_substr($str, 0, 10, 'UTF-8');<br />
if(mb_strlen($tmp, 'UTF-8')> 10) $tmp .='...';<br />
print $tmp;</p>

<p>↓</p>

<p>あいうえおかきくけこ...</p>]]>
        
    </content>
</entry>

<entry>
    <title>phpのming</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/11/phpming.html" />
    <id>tag:117.120.50.87,2008:/neta//2.54</id>

    <published>2008-11-09T01:36:30Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary>mingの備忘録。これを応用すれば大体のことはできる？かな。 //携帯対応するた...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="携帯" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>mingの備忘録。これを応用すれば大体のことはできる？かな。</p>

<p>//携帯対応するためバージョン4で<br />
ming_useswfversion(4);</p>

<p>$m = new SWFMovie();</p>

<p>$m->setDimension(240, 320);<br />
$m->setbackground(0, 0, 0);</p>

<p>//jpg読込<br />
$s = new SWFShape();<br />
//jpgまたはdblのみ<br />
$f = $s->addFill(new SWFBitmap(fopen('sample.jpg', "rb")));<br />
$s->setRightFill($f[$i]);<br />
$s->drawLine(0, 320);<br />
$s->drawLine(240, 0);<br />
$s->drawLine(0, -320);<br />
$s->drawLine(-240, 0);<br />
$p = new SWFSprite();<br />
$p->add($s);<br />
$p->nextFrame();<br />
$m->add($p);</p>

<p>//swf読込<br />
$c = new SWFPrebuiltClip(fopen('../sozai/ugoku/sample.swf', "rb"));<br />
$i = $m->add($c);<br />
$i->setName("sozai");<br />
$m->add(new SWFAction("sozai{$j}.x = 100;sozai{$j}.y = 100;sozai.xScale = 100;sozai.yScale = 100;"));</p>

<p>//文字書込<br />
$o = new SWFFont('sample.ttf');<br />
$t = new SWFText();<br />
$t->setFont($o);<br />
//フォントの高さ<br />
$t->setHeight(20);<br />
$t->setColor(0xff,0xff,0xff);<br />
//文字記入位置<br />
$t->moveTo(20,20);<br />
$t->addUTF8String('Sample');<br />
$w = new SWFSprite();<br />
$w->add($t);<br />
$w->nextFrame();<br />
$m->add($w);</p>

<p>$m->nextFrame();<br />
$m->save('sample.swf');</p>]]>
        
    </content>
</entry>

<entry>
    <title>携帯flashワークメモリ</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/11/flash.html" />
    <id>tag:117.120.50.87,2008:/neta//2.53</id>

    <published>2008-11-05T02:10:22Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary>携帯flashについて気づいたこと。 ファイルサイズが○KB以下というのは、どの...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="携帯" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>携帯flashについて気づいたこと。</p>

<p>ファイルサイズが○KB以下というのは、どのキャリアのサイトにも記載されてるし、作る時に分かるので問題なし。<br />
最近、困っているのがワークメモリ。</p>

<p>docomoはサイト上で公開されているため、作るときには分からないけど、シミュレータでテストしてみればOKかNGかは分かる。</p>

<p>しかし、auはどこにも情報が公開されてないため、非常に困る。ワークメモリをオーバーすると「メモリ不足で表示できません。」になるし・・・。</p>

<p>何を基準に作ったらよいのやら。<br />
どうにかならないものか。</p>

<p>ちなみにflash lite1.1対応機種だとdocomoだとワークメモリが2M～くらいだけど、auだと感覚的には1.5M～くらいかなあ。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Linuxでユーザーのホームディレクトリ変更</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/09/linux.html" />
    <id>tag:117.120.50.87,2008:/neta//2.52</id>

    <published>2008-09-29T11:29:50Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary>usermod -d 新しいホームディレクトリ　ユーザー名 usermodその他...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>usermod -d 新しいホームディレクトリ　ユーザー名</p>

<p>usermodその他のオプション<br />
  -a, --append                  append the user to the supplemental GROUPS<br />
                                (use only with -G)<br />
  -c, --comment COMMENT         new value of the GECOS field<br />
  -d, --home HOME_DIR           new home directory for the user account<br />
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE<br />
  -f, --inactive INACTIVE       set password inactive after expiration<br />
                                to INACTIVE<br />
  -g, --gid GROUP               force use GROUP as new primary group<br />
  -G, --groups GROUPS           new list of supplementary GROUPS<br />
  -h, --help                    display this help message and exit<br />
  -l, --login NEW_LOGIN         new value of the login name<br />
  -L, --lock                    lock the user account<br />
  -m, --move-home               move contents of the home directory to the new<br />
                                location (use only with -d)<br />
  -o, --non-unique              allow using duplicate (non-unique) UID<br />
  -p, --password PASSWORD       use encrypted password for the new password<br />
  -s, --shell SHELL             new login shell for the user account<br />
  -u, --uid UID                 new UID for the user account<br />
  -U, --unlock                  unlock the user account<br />
  -Z, --selinux-user    new selinux user mapping for the user account</p>]]>
        
    </content>
</entry>

<entry>
    <title>phpのpearの備忘録</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/09/phppear.html" />
    <id>tag:117.120.50.87,2008:/neta//2.51</id>

    <published>2008-09-29T09:56:40Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary>アップグレード pear upgrade-all インストール pear ins...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>アップグレード<br />
pear upgrade-all</p>

<p>インストール<br />
pear install -a パッケージ名</p>

<p>pear install -a Mail<br />
pear install -a Mime_decode<br />
など</p>]]>
        
    </content>
</entry>

<entry>
    <title>phpでpdf作成</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/09/phppdf.html" />
    <id>tag:117.120.50.87,2008:/neta//2.50</id>

    <published>2008-09-03T05:45:57Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary>最近、プログラムを使って、動的にpdfを作成したいという話をよく耳にする。 今ま...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>最近、プログラムを使って、動的にpdfを作成したいという話をよく耳にする。<br />
今まで、pdflibという有償ソフトを使っていたのだが、fpdfというフリーソフトがあるのを発見。<br />
今度、機会があれば使ってみよう。</p>]]>
        
    </content>
</entry>

<entry>
    <title>socket通信でPOSTでデータを渡す方法</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/06/socketpost.html" />
    <id>tag:117.120.50.87,2008:/neta//2.49</id>

    <published>2008-06-08T05:46:30Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary><![CDATA[以下のような感じ。 $tmp = 'a=123&b=456&c=789'; $t...]]></summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>以下のような感じ。</p>

<p>
<literal>
$tmp = 'a=123&b=456&c=789';<br>
$tmp .= "\r\n\r\n";<br>
$fp = fsockopen('ホスト名', 80, $errno, $errstr, 30);<br>
$out  = 'POST スクリプト名 HTTP/1.0'."\r\n";<br>
$out .= 'Date: '.gmdate('D, d M Y H:i:s \G\M\T')."\r\n";<br>
$out .= 'Content-Length: '.strlen($tmp)."\r\n\r\n";<br>
$out .= $tmp;<br>
fwrite($fp, $out);<br>
<br>
unset($tmp);<br>
while (!feof($fp)) {<br>
  $tmp[] = fgets($fp);<br>
}<br>
fclose($fp);<br>
</literal>
</p>]]>
        
    </content>
</entry>

<entry>
    <title>mysqlのShift_JISの日本語のinsertエラー(文字化け)</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/06/mysqlshift-jisinsert.html" />
    <id>tag:117.120.50.87,2008:/neta//2.48</id>

    <published>2008-06-02T08:08:09Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary>mysqlの文字コードがShift_JISの場合、日本語をsqlで、そのままin...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>mysqlの文字コードがShift_JISの場合、日本語をsqlで、そのままinsertすると、「予」など一部の文字で、エラー又は、文字化けを起こす。</p>

<p>これはそれらの文字をバイト表記した場合、5C(いわゆる￥マーク)が入るためのようだ。<br />
5cはsqlが実行されるときに、自動削除されるため、文字化け又はエラーの原因になる。</p>

<p>対策としては、1文字づつ置換するのは大変なので、バイナリエディタで、5c　→　5c　5c　に一括置換してやると良い。</p>]]>
        
    </content>
</entry>

<entry>
    <title>PHPでSSLクライアント認証(証明書)</title>
    <link rel="alternate" type="text/html" href="http://www.dream-link.jp/neta/2008/04/phpssl.html" />
    <id>tag:117.120.50.87,2008:/neta//2.47</id>

    <published>2008-04-26T08:14:14Z</published>
    <updated>2009-03-18T14:15:27Z</updated>

    <summary>かなり苦戦しました。 opensslの勉強も必要だったっりして・・・。 PHPが...</summary>
    <author>
        <name>管理者</name>
        
    </author>
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="http://www.dream-link.jp/neta/">
        <![CDATA[<p>かなり苦戦しました。</p>

<p>opensslの勉強も必要だったっりして・・・。</p>

<p>PHPがopensslを利用できる状態(--with-openssl)でコンパイルされていることが前提です。</p>

<p>1.○○.pfxファイル(電子証明書)をpem形式に変換(コマンドライン)<br />
openssl pkcs12 -in ○○.pfx -nodes -clcerts -out client.pem<br />
※client.pmについては--START--～--END--以外のヘッダ情報は<br />
テキストエディタなどで削除する必要があるかもしれません。</p>

<p>2.(必要に応じて)ルートCA証明書をpem形式に変換(コマンドライン)<br />
openssl x509 -inform DER -in ○○.cer -out ca1.pem</p>

<p>3.(必要に応じて)中間CA証明書をpem形式に変換(コマンドライン)<br />
openssl x509 -inform DER -in ○○.cer -out ca2.pem</p>

<p>4.ルートCA証明書と中間CA証明書をテキストエディタでつなげて、ca.pemを作成<br />
※本当につなげるだけです。</p>

<p>5.その上で、以下のスクリプトを実行します。<br />
$context = stream_context_create();<br />
stream_context_set_option($context, 'ssl', 'local_cert', './client.pem');<br />
stream_context_set_option($context, 'ssl', 'cafile', './ca.pem');<br />
$fp = fsockopen('ssl://サーバーIPアドレス', 443, $errno, $errstr, 30, $context);<br />
※tlsの場合、sslをtlsに変更</p>

<p>エラーが出ず$fpにリソース番号が返ってくればOKです。</p>

<p>このためだけに、都合1週間程度かかりました。</p>]]>
        
    </content>
</entry>

</feed>

