SSL Server 自作するための OpenSSL 使用方法

記事公開日:2018年3月8日


スポンサーリンク

7.OpenSSL 動作確認

では、インストールされた Open SSL がちゃんと動くかどうか確認してみます。

まず、Windows 10の場合、ウィンドウアイコンを右クリックします。
右クリックですよ!

esp_idf_openssl_28.jpg


次に下図の様になるので、コマンドプロンプトを管理者権限で開きます。

esp_idf_openssl_29.jpg


すると、「このデバイスが変更を加えることを許可しますか?」と問われるので、「許可」をクリック。

すると、下図のようにコマンドプロンプトが起動します。

esp_idf_openssl_30.jpg


まずは、次のようなコマンドを打ってみます。

openssl version

すると、下図の様に Open SSL のコンパイル済みバージョンが表示されていればOKです。

esp_idf_openssl_31.jpg


次に、以下のコマンドを打って、OpenSSL ディレクトリに移ります。

cd /D D:\OpenSSL-Win64

esp_idf_openssl_32.jpg


次に下図の様に、自分用の仮の作業用フォルダを作ります。
ここでは例として、MyData というフォルダをつくります。

mkdir MyData

esp_idf_openssl_33.jpg


次に、以下のコマンドを入力して、MyDataフォルダへ移動します。

cd /D MyData

esp_idf_openssl_34.jpg


では、実際に試しとして、仮にwww.example.jp というドメインとして、秘密鍵と、サーバー証明書署名要求ファイルを作ってみます。
以下のコマンドを入力してみてください。

openssl req -new -newkey rsa:2048 -nodes -out www_example_jp.csr -keyout www_example_jp.key -subj "/C=JP/ST=Tokyo/L=Shinjyuku/O=Example/OU=example/CN=www.example.jp”

esp_idf_openssl_35.jpg


すると、下図の様にMyDataフォルダに、拡張子.csr ファイルと、拡張子.key ファイルができると思います。
csr ファイルは、証明書署名要求(CSR: certificate signing request)ファイルというもので、認証局に信頼できるサーバーとしてもらうための署名を要求するファイルです。
keyファイルは、秘密鍵 ( Private-Key ) ファイルです。

esp_idf_openssl_36.jpg


keyファイルをテキストエディタで開いてみると、下図の様になります。

esp_idf_openssl_37.jpg


このように、最初の行に「—- BEGIN ****」となっているものは、PEM形式というファイルだそうです。
これは、秘密鍵をbase64エンコーディングしたものなのか、暗号化されたものなのかは正直よくわかりませんが、他人に見られないように大切に保管しなければいけません

つい最近、某仮想通過取引所で、この秘密鍵が盗まれて多量の仮想通過流出事件がありましたが、正にこれの様です。

では、秘密鍵( Private-Key )を実際に見てみます。
以下のコマンドを入力してください。

openssl rsa -in www_example_jp.key -text -noout

すると、このように表示されます。

esp_idf_openssl_38.jpg


秘密鍵 ( Private-Key ) が見えました!
ネットのどこかのページにはPEM形式秘密鍵は暗号化されたものとありますが、このコマンドだけで見えてしまうということは、秘密鍵そのもののようなのです。
やはりPEM形式ファイル自体を厳重に保管しなければならないようです。

このcsr とkeyファイルはあくまでテストですので、削除してしまってOKです。
では、先に進んでいきます。
次では、作業用フォルダやファイル作成を説明します。


スポンサーリンク


「SSL Server 自作するための OpenSSL 使用方法」への7件のフィードバック

  1. お久しぶりです。HALです。

    自宅のWEBサーバーでWPAを動かすためにSSL対応する必要があり、
    こちらの記事を参考にさせて頂きました。

    とても詳しく説明して頂いたお蔭で、無事に対応が出来ました。
    ありがとうございます。
    最初は簡単そうなApachなどの別サイト記事をいくつか試してみたのですが全敗しました。
    いやー、これは凄いですね。実際に試して感動しました。
    Chromeの最新版に対応できるのが、とてもありがたいです。
    自力では絶対に無理でした。

    対価として支援させていただきます。

    ¥—–
    ギフト券番号:
    —————
    有効期限
    ————-

    1. (ブログを全面修復して、過去のコメントが消えてしまいました。
      以下、1/24時点のコメントを再投稿します。)

      HAL さん

      ご無沙汰しております。

      そして、かなり高額なご支援、ありがとうございます。
      とーってもウレシイです!!!

      そういえば、メール一切無しのご支援方法って、やっぱり斬新ですね。
      以前、コメント投稿でご支援いただきましたが、一瞬、メールを探してしまいました。
      本当に感謝しかありません。
      m(_ _)m

      ところで、あまり人気の無かったこの記事でお役に立てて、感無量でございます。
      この記事は結構苦労したんですよね。
      これは、実際に SSL 化した時の達成感はかなりありますよね。
      やった人でないと分からないと思います。
      HALさんにわかって頂けて、何よりです。
      報われた感があって、とっても嬉しいですね。

      最近は、忙しくてなかなか新たな工作ができませんが、おかげでがんばれそうな気がしました。
      ホントにありがとうございました。
      m(_ _)m

  2. mgo-tec 様

    今回も教えを乞うこととなりました(スミマセン)。
    OpenSSL のバージョン確認のところまではスムーズにいったのですが、OpenSSL ディレクトリへ移行しようとすると、
    「ファイル名、ディレクトリ名またはボリュームラベルの構文が間違っています」
    となり先へ進めません。
    テキストと違う点:
    1.Dドライブが無いため、ディレクトリの保管場所をCドライブとしています。
    外置きのハードディスク(Eドライブ)でも試してみましたが同様。
    2.OpenSSL のバージョンは、1_0_2s となっています。
    3.OpenSSL のインストールで、「 Select Start Menu Foruder 」の項目が出ません。
    手書きでフォルダー名を、OpenSSL-Win64 → OpenSSL としても同様。
    毎回お手数をお掛けします、アドバイスの程お願いいたします。

    1. juchangさん

      いつも記事を試していただき、ありがとうございます。

      私はOpenSSLを最近全く使っておらず、ver 1.0.2sになっているとは知りませんでした。
      バージョンが異なっていると、当然この記事とは異なると思います。

      まず、気になるのが、コマンドが正確に入力されているかどうかです。
      juchangさんがコマンドプロンプトで打ち込んだテキストが全て半角入力で、記号は合っていますでしょうか?
      今一度ご確認ください。
      「ファイル名、ディレクトリ名またはボリュームラベルの構文が間違っています」
      というようにコマンドラインに表示されたということは、コマンド入力方法が間違えています。

      cdコマンドはChange Directryの略です。
      cdコマンドの使い方が分らない場合、ネットに情報が沢山ありますので調べてみて下さい。
      因みに、

      cd /?

      と入力するとヘルプが見られます。

      あと、OpenSSLのインストールに関しての不具合は、私には解り兼ねますので、OpenSSLの方に直に問い合わせて頂くようにお願いいたします。
      (英語対応でいつ返事が来るか分かりませんが・・・)

      また、3番の質問は気にしなくて良いと思います。
      スタートメニューには普通にインストールされていると思われますし、機能には影響無いと思います。

      1. mgo-tec 様

        今回も単純なミスでした。
        cd /? で検索してみると、私の場合は C ドライブに保管しているので、
        cd \OpenSSL-Win64
        でいいことが解り、先ほど本テキストの処理を完成することができました。
        これで ESP32 SSL サーバーの構築へ進めます。
        今後ともご指導の程よろしくお願い致します。

        1. やはり、そういうことでしたか・・・。
          コマンドプロンプトのエラーは入力ミスのことが多いので、それをまず疑ってかかると良いと思います。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください