ホームページ > バックエンド開発 > PHPチュートリアル > openssl で証明書を発行するときに 16 バイトのシリアル番号を指定する方法

openssl で証明書を発行するときに 16 バイトのシリアル番号を指定する方法

WBOY
リリース: 2016-06-13 13:26:54
オリジナル
1515 人が閲覧しました

openssl で証明書を発行するときに 16 バイトのシリアル番号を指定するにはどうすればよいですか?
openssl 関数を使用して証明書を発行するときに、いくつかの問題が発生しました。このプロジェクトでは、明らかに 16 バイトの証明書のシリアル番号を指定する必要があります。 0x4C5300000000000000100020004000009 の形式、最後の 3 バイト これは動的に変更され、openssl_csr_sign 関数

resource openssl_csr_sign (mixed $csr ,mixed $cacert ,mixed $priv_key , int $days [,array) を使用するときに問題が発生しました。 $configargs [, int $serial=0 ]] )

最後のパラメータはシリアル番号を指定できますが、通常の int はそのような大きな整数をサポートできません。sprintf('%s', $n) を使用してみました。 )、テキストを直接渡してみました。1バイトだけ書かれているか、0です

解決策を見つけるにはどの方向から始めればよいですか?

サンプルがあると良いでしょう。コード

ありがとうございます!

-----解決策---------
説明:
----------
Certificat 定義 OpenSSL では、最大
20 桁以上の数値シリアル番号を使用できます。
PHP には、シリアル
番号の半分のみを許可する整数制限が組み込まれています ..... より大きな数値にはクリアされた部分があります....

シリアルは数値である必要がありますが問題ありませんただし、整数である必要はありません
、または整数によって制限される必要はありません(より大きな数値を許可します)
------解決策------------------
Certificat 定義 OpenSSL では、最大で数値のシリアル番号を使用できます。
20 桁以上。
PHP には、シリアル
番号の半分のみを許可する整数制限が組み込まれています。.... より大きな番号にはクリアされた部分があります....


これは、openssl はデフォルトで 20 ビット長の整数をサポートしているが、PHP の組み込み int 型はその半分の長さだけで、上位半分はクリアされることを意味しているようです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート