2023年 5月 の投稿一覧

openssl verify -CAfileコマンドの使い方

次のコマンドで証明書が認証局(CA)で署名された証明書であることを確認する。「openssl verify -CAfile」コマンドの使い方は次の通りである。
このコマンドは、サーバー証明書が認証局(CA)によって署名されているかどうかを確認する。
「CA bundle file」には、ルート証明書or証明書チェーン(ルート証明書+中間証明書+サーバー証明書)を指定する。「CA bundle file」には必ずルート証明書あるいはオレオレ証明書が含まれる必要がある。
「bundle file」という用語自体は、単に複数のファイルを1つにまとめたファイルのことを意味する。証明書の場合は証明書チェーンを意味する。
「server certificate file」には、サーバー証明書or中間証明書orルート証明書を指定する。


openssl verify -CAfile <CA bundle file> <server certificate file>
続きを読む

サーバ証明書と中間証明書とルート証明書

サーバ証明書と中間証明書とルート証明書の関係について書いておく。

実際のhttpsのwebサイトでは、サーバ証明書は、サーバ証明書の発行者(中間認証局)の秘密鍵で署名される。中間認証局は自己署名証明書を発行する。この自己署名証明書の中に中間認証局の公開鍵が含まれる。その後、ルート認証局が中間認証局の公開鍵を含む中間証明書を署名することで、信頼できる証明書となる。つまり中間証明書は2つの署名がされている。ルート証明書は、ルート認証局の秘密鍵で署名されている。

続きを読む

X.509証明書(デジタル証明書)

X.509証明書はデジタル証明書のことである。X.509証明書はX.509規格に準拠している。
X.509規格の証明書には拡張子はない。
X.509規格の証明書がPEM形式でエンコードされることが多い。X.509規格の証明書は、多くの場合PEMエンコードされた形式で使用される。しかし、それ以外のエンコード形式も存在する。
サーバー証明書はデジタル証明書の一種である。
デジタル証明書は他に、ルート証明書やクライアント証明書がある。
サーバー証明書、ルート証明書、クライアント証明書はPEM形式でエンコードして拡張子がPEMになることが多い。

続きを読む

自己署名証明書(オレオレ証明書)を使ってHTTPSサーバーをNode.jsで立ち上げる(windows10) その1

Node.jsでHTTPSサーバーを立ち上げる(windows10)

HTTPSでクライアントとサーバー間で暗号化通信を行うために公開鍵と秘密鍵のペアと、公開鍵を元に認証局で発行されたサーバー証明書が必要である。
自分のPCにApache(HTTPサーバーソフトウェアの一つで)でHTTPサーバーを立ち上げると、http://localhost/にアクセスすることができる。
同様に、自分のPCにNode.jsで秘密鍵とサーバー証明書を読み込んでHTTPSサーバーを立ち上げると
https://localhost/にアクセスすることができる。

続きを読む