OpenSSL 1.1.1 インストールと設定:初心者向けステップバイステップガイド


OpenSSL 1.1.1 インストールと設定:初心者向けステップバイステップガイド

はじめに

OpenSSLは、セキュアな通信を行うための強力なオープンソースツールキットです。SSL/TLSプロトコルの実装を提供し、暗号化、認証、デジタル署名など、さまざまなセキュリティ機能をサポートしています。Webサーバー、メールサーバー、VPNなど、多くのアプリケーションでOpenSSLが利用されています。この記事では、OpenSSL 1.1.1をインストールし、基本的な設定を行う方法を初心者向けにステップバイステップで解説します。

対象読者

この記事は、以下の読者を対象としています。

  • OpenSSLを初めて使用する方
  • OpenSSLのインストールと設定に苦労している方
  • OpenSSLの基本的な使い方を学びたい方

前提条件

この記事の手順を実行するには、以下のものが必要です。

  • Linux、macOS、またはWindowsのいずれかのオペレーティングシステム
  • 管理者権限 (またはsudo権限)
  • インターネット接続 (パッケージのダウンロードに必要)

記事の構成

この記事は、以下のセクションで構成されています。

  1. OpenSSLとは?
  2. OpenSSL 1.1.1の入手
  3. OpenSSL 1.1.1のインストール (Linux, macOS, Windows)
  4. OpenSSLの設定
  5. OpenSSLの基本的な使い方
  6. よくある質問 (FAQ)
  7. トラブルシューティング
  8. 次のステップ

1. OpenSSLとは?

OpenSSLは、Transport Layer Security (TLS) および Secure Sockets Layer (SSL) プロトコルのオープンソース実装を提供する、堅牢で商用グレードの完全なツールキットです。これらのプロトコルは、インターネット経由での通信を安全にするために不可欠です。OpenSSLは、暗号化、認証、およびデジタル署名に使用される幅広い暗号アルゴリズムと標準をサポートしています。

OpenSSLは、コマンドラインツールとプログラミングライブラリの両方として提供されます。これにより、開発者はアプリケーションにセキュリティ機能を追加したり、システム管理者はコマンドラインからセキュリティ関連のタスクを実行したりできます。

OpenSSLの主な機能:

  • SSL/TLSプロトコルのサポート: 暗号化された接続の確立と維持。
  • 暗号化アルゴリズムのサポート: AES、DES、RSA、ECCなど、多くの暗号化アルゴリズムをサポート。
  • 認証: デジタル証明書を使用して、サーバーとクライアントの身元を確認。
  • デジタル署名: メッセージの整合性を保証し、送信者の身元を証明。
  • コマンドラインツール: 証明書の生成、CSRの作成、SSL/TLS接続のテストなど。
  • プログラミングライブラリ: アプリケーションにセキュリティ機能を統合するためのAPIを提供。

OpenSSLの重要性:

OpenSSLは、インターネットセキュリティの基盤となる重要なコンポーネントです。Webサーバー、メールサーバー、VPN、およびその他多くのアプリケーションで、データを暗号化し、安全な通信を確立するために使用されています。OpenSSLのセキュリティ上の脆弱性は、広範囲に影響を与える可能性があります。そのため、OpenSSLを最新の状態に保ち、適切な設定を行うことが非常に重要です。

2. OpenSSL 1.1.1の入手

OpenSSL 1.1.1は、2018年9月にリリースされたLTS (Long Term Support) バージョンであり、2023年9月までサポートされていました。 現在はサポートが終了していますが、多くのシステムで依然として利用されています。新しいプロジェクトでは、より新しいバージョンの OpenSSL 3.x を検討することを強く推奨します。 このガイドでは、主にOpenSSL 1.1.1のインストールと設定に焦点を当てます。

公式サイトからのダウンロード:

OpenSSLの公式ウェブサイト (https://www.openssl.org/) からソースコードをダウンロードできます。

  • ソースコードのダウンロード:
    • 公式ウェブサイトの「Download」セクションにアクセスします。
    • OpenSSL 1.1.1のソースコード (tar.gz形式) をダウンロードします。

パッケージマネージャーの使用:

多くのLinuxディストリビューションでは、パッケージマネージャーを使用してOpenSSLをインストールできます。

  • Debian/Ubuntu:
    bash
    sudo apt update
    sudo apt install openssl libssl-dev
  • CentOS/RHEL/Fedora:
    bash
    sudo yum install openssl openssl-devel
  • macOS (Homebrewを使用):
    bash
    brew update
    brew install [email protected]

注意: パッケージマネージャーを使用すると、システムに最適なバージョンが自動的にインストールされます。ただし、特定のバージョン (1.1.1) が必要な場合は、ソースコードからビルドする必要があります。

3. OpenSSL 1.1.1のインストール

ここでは、Linux、macOS、Windowsの各オペレーティングシステムでOpenSSL 1.1.1をインストールする手順を説明します。

3.1 Linuxへのインストール (ソースコードから)

  1. ソースコードのダウンロード:

    • 上記の「OpenSSL 1.1.1の入手」セクションを参照して、OpenSSL 1.1.1のソースコードをダウンロードします。
  2. ソースコードの展開:

    • ターミナルを開き、ダウンロードしたアーカイブファイルを展開します。
      bash
      tar -xvzf openssl-1.1.1<version>.tar.gz
      cd openssl-1.1.1<version>

      <version>は、ダウンロードしたファイルの実際のバージョン番号に置き換えてください。
  3. 設定 (configure):

    • OpenSSLのビルド設定を行います。prefixオプションでインストール先を指定します。
      bash
      ./config --prefix=/usr/local/openssl

      /usr/local/opensslは、OpenSSLをインストールするディレクトリです。必要に応じて変更してください。
      別のコンパイラを使用する場合は、ccオプションで指定できます (例: ./config cc=gcc-9 --prefix=/usr/local/openssl)。
  4. コンパイル:

    • makeコマンドを使用して、OpenSSLをコンパイルします。
      bash
      make
  5. インストール:

    • make installコマンドを使用して、OpenSSLをインストールします。管理者権限が必要です。
      bash
      sudo make install
  6. 環境変数の設定 (オプション):

    • OpenSSLの実行ファイルとライブラリをシステムパスに追加します。
      • ~/.bashrcまたは~/.zshrcファイルを開き、以下の行を追加します。
        bash
        export PATH=$PATH:/usr/local/openssl/bin
        export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openssl/lib
      • ファイルを保存し、ターミナルを再起動するか、以下のコマンドを実行して変更を適用します。
        bash
        source ~/.bashrc (または source ~/.zshrc)
  7. バージョンの確認:

    • OpenSSLが正しくインストールされたことを確認します。
      bash
      openssl version

      “OpenSSL 1.1.1 …”と表示されれば、インストールは成功です。

3.2 macOSへのインストール (Homebrewを使用しない場合)

macOSでもLinuxと同様に、ソースコードからOpenSSLをインストールできます。Homebrewを使用する場合は、前述の「パッケージマネージャーの使用」セクションを参照してください。

  1. ソースコードのダウンロード:

    • 上記の「OpenSSL 1.1.1の入手」セクションを参照して、OpenSSL 1.1.1のソースコードをダウンロードします。
  2. ソースコードの展開:

    • ターミナルを開き、ダウンロードしたアーカイブファイルを展開します。
      bash
      tar -xvzf openssl-1.1.1<version>.tar.gz
      cd openssl-1.1.1<version>
  3. 設定 (configure):

    • OpenSSLのビルド設定を行います。
      bash
      ./config --prefix=/usr/local/openssl
  4. コンパイル:

    • makeコマンドを使用して、OpenSSLをコンパイルします。
      bash
      make
  5. インストール:

    • make installコマンドを使用して、OpenSSLをインストールします。管理者権限が必要です。
      bash
      sudo make install
  6. 環境変数の設定 (オプション):

    • OpenSSLの実行ファイルとライブラリをシステムパスに追加します。
      • ~/.bash_profileまたは~/.zshrcファイルを開き、以下の行を追加します。
        bash
        export PATH=$PATH:/usr/local/openssl/bin
        export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/openssl/lib
      • ファイルを保存し、ターミナルを再起動するか、以下のコマンドを実行して変更を適用します。
        bash
        source ~/.bash_profile (または source ~/.zshrc)

        macOSでは、LD_LIBRARY_PATHではなくDYLD_LIBRARY_PATHを使用します。
  7. バージョンの確認:

    • OpenSSLが正しくインストールされたことを確認します。
      bash
      openssl version

3.3 Windowsへのインストール

WindowsにOpenSSLをインストールするには、いくつかの方法があります。

3.3.1 Chocolateyパッケージマネージャーを使用する

Chocolateyは、Windows用のパッケージマネージャーです。これを使用すると、OpenSSLのインストールが簡単になります。

  1. Chocolateyのインストール:

  2. OpenSSLのインストール:

    • 管理者としてコマンドプロンプトを開き、以下のコマンドを実行します。
      powershell
      choco install openssl
    • インストール中に確認を求められたら、Yと入力してEnterキーを押します。
  3. 環境変数の設定:

    • Chocolateyは、OpenSSLの実行ファイルとライブラリをシステムパスに自動的に追加します。ただし、念のため、環境変数が正しく設定されていることを確認してください。
      • システム環境変数を編集します (Windowsキー + “環境変数”と入力して検索)。
      • Path変数を選択し、「編集」をクリックします。
      • 以下のディレクトリがリストに含まれていることを確認します。
        • C:\Program Files\OpenSSL-Win64\bin (またはC:\Program Files\OpenSSL-Win32\bin、32ビット版の場合)
      • 含まれていない場合は、追加します。
  4. バージョンの確認:

    • コマンドプロンプトを開き、以下のコマンドを実行します。
      openssl version
      “OpenSSL 1.1.1 …”と表示されれば、インストールは成功です。

3.3.2 手動インストール

Chocolateyを使用せずに、OpenSSLを手動でインストールすることもできます。

  1. バイナリファイルのダウンロード:

    • https://slproweb.com/products/Win32OpenSSL.html からOpenSSLのバイナリファイルをダウンロードします。
    • OpenSSL 1.1.1のバイナリファイルを選択します (例: Win64 OpenSSL v1.1.1<version>)。
    • Visual C++ 2015-2019 Redistributableが必要です。インストールされていない場合は、ダウンロードページから入手してインストールしてください。
  2. インストーラの実行:

    • ダウンロードしたインストーラを実行します。
    • インストールディレクトリを選択します (例: C:\OpenSSL-Win64)。
  3. 環境変数の設定:

    • システム環境変数を編集します (Windowsキー + “環境変数”と入力して検索)。
    • OPENSSL_HOMEという名前の新しいシステム変数を作成し、OpenSSLのインストールディレクトリを設定します (例: C:\OpenSSL-Win64)。
    • Path変数を選択し、「編集」をクリックします。
    • 以下のディレクトリをリストに追加します。
      • %OPENSSL_HOME%\bin
  4. バージョンの確認:

    • コマンドプロンプトを開き、以下のコマンドを実行します。
      openssl version

4. OpenSSLの設定

OpenSSLの基本的な設定について説明します。

4.1 openssl.cnfファイルの編集

openssl.cnfファイルは、OpenSSLの様々な設定を制御するための構成ファイルです。このファイルは、証明書の生成、CSRの作成、およびその他の暗号化操作に使用されます。

  • ファイルの場所:

    • Linux/macOS: /usr/local/openssl/ssl/openssl.cnf (インストール時に --prefix で指定したディレクトリによって異なります)
    • Windows: C:\OpenSSL-Win64\bin\openssl.cnf (またはインストールディレクトリ\bin)
  • 基本的な設定:

    • [ca]セクション: CA (認証局) 関連の設定が含まれます。
      • default_ca: デフォルトのCAセクションの名前 (例: CA_default)
    • [CA_default]セクション: CAのデフォルト設定が含まれます。
      • dir: CAのデータベースディレクトリ (例: ./demoCA)
      • database: CAのデータベースファイル (例: ./demoCA/index.txt)
      • serial: シリアル番号ファイル (例: ./demoCA/serial)
      • default_days: 証明書の有効期間 (日数)
      • default_md: デフォルトのメッセージダイジェストアルゴリズム (例: sha256)
    • [req]セクション: 証明書署名要求 (CSR) の設定が含まれます。
      • default_bits: RSAキーのデフォルトのビット長 (例: 2048)
      • default_md: デフォルトのメッセージダイジェストアルゴリズム (例: sha256)
      • distinguished_name: 識別名 (DN) の設定が含まれます。
    • [distinguished_name]セクション: 識別名 (DN) のフィールドを設定します。
      • countryName: 国コード (2文字)
      • stateOrProvinceName: 州/都道府県
      • localityName: 市区町村
      • organizationName: 組織名
      • organizationalUnitName: 組織単位名
      • commonName: 共通名 (ドメイン名など)
      • emailAddress: メールアドレス
  • 設定例:
    “`
    [ca]
    default_ca = CA_default

    [CA_default]
    dir = ./demoCA
    database = ./demoCA/index.txt
    new_certs_dir = ./demoCA/newcerts
    certificate = ./demoCA/cacert.pem
    serial = ./demoCA/serial
    default_days = 365
    default_md = sha256
    policy = policy_match

    [policy_match]
    countryName = match
    stateOrProvinceName = match
    organizationName = match
    organizationalUnitName = optional
    commonName = supplied
    emailAddress = optional

    [req]
    default_bits = 2048
    default_md = sha256
    prompt = no
    distinguished_name = req_distinguished_name

    [req_distinguished_name]
    countryName = JP
    stateOrProvinceName = Tokyo
    localityName = Shinjuku
    organizationName = Example Corp.
    organizationalUnitName = IT Department
    commonName = example.com
    emailAddress = [email protected]
    “`

4.2 環境変数の設定 (OpenSSL_CONF)

OPENSSL_CONF環境変数を設定することで、OpenSSLが使用するopenssl.cnfファイルの場所を指定できます。

  • Linux/macOS:
    bash
    export OPENSSL_CONF=/usr/local/openssl/ssl/openssl.cnf

  • Windows:

    • システム環境変数を編集し、OPENSSL_CONFという名前の新しいシステム変数を作成します。
    • 変数の値にopenssl.cnfファイルの場所を設定します (例: C:\OpenSSL-Win64\bin\openssl.cnf)。

5. OpenSSLの基本的な使い方

OpenSSLの基本的な使い方をいくつか紹介します。

5.1 秘密鍵の生成

RSA秘密鍵を生成するには、以下のコマンドを実行します。
bash
openssl genrsa -out private.key 2048

このコマンドは、2048ビットのRSA秘密鍵をprivate.keyファイルに生成します。

5.2 証明書署名要求 (CSR) の作成

CSRは、証明書を認証局に要求するために使用されるファイルです。CSRを作成するには、以下のコマンドを実行します。
bash
openssl req -new -key private.key -out certificate.csr

このコマンドは、private.keyファイルから秘密鍵を読み込み、CSRをcertificate.csrファイルに生成します。コマンドを実行すると、国、州、組織などの情報を求められます。

5.3 自己署名証明書の作成

自己署名証明書は、認証局によって署名されていない証明書です。テスト環境などで使用できます。自己署名証明書を作成するには、以下のコマンドを実行します。
bash
openssl req -x509 -newkey rsa:2048 -keyout private.key -out certificate.pem -days 365

このコマンドは、2048ビットのRSA秘密鍵を生成し、自己署名証明書をcertificate.pemファイルに作成します。証明書の有効期間は365日です。

5.4 証明書の検証

証明書が有効かどうかを確認するには、以下のコマンドを実行します。
bash
openssl verify certificate.pem

証明書が有効な場合は、”OK”と表示されます。

5.5 SSL/TLS接続のテスト

OpenSSLを使用して、SSL/TLS接続をテストできます。
bash
openssl s_client -connect example.com:443

このコマンドは、example.comの443番ポートに接続し、SSL/TLSハンドシェイクを実行します。

6. よくある質問 (FAQ)

  • Q: OpenSSLの最新バージョンを使うべきですか?

    • A: はい。最新バージョンには、セキュリティ上の修正や新機能が含まれているため、常に最新バージョンを使用することを推奨します。ただし、既存のアプリケーションとの互換性を考慮する必要があります。
  • Q: OpenSSLをインストールした後、何を設定する必要がありますか?

    • A: openssl.cnfファイルの編集とOPENSSL_CONF環境変数の設定が必要です。これにより、OpenSSLの様々な設定をカスタマイズできます。
  • Q: 自己署名証明書は安全ですか?

    • A: 自己署名証明書は、認証局によって署名されていないため、セキュリティ上のリスクがあります。テスト環境での使用は問題ありませんが、本番環境では信頼された認証局から証明書を取得することを推奨します。

7. トラブルシューティング

  • “openssl: command not found”というエラーが表示される場合:

    • OpenSSLの実行ファイルがシステムパスに追加されていない可能性があります。環境変数を正しく設定していることを確認してください。
  • 証明書の検証に失敗する場合:

    • 証明書の有効期限が切れているか、信頼された認証局によって署名されていない可能性があります。
  • SSL/TLS接続に失敗する場合:

    • サーバーの設定に問題があるか、クライアントとサーバーの間で互換性のない暗号スイートが使用されている可能性があります。

8. 次のステップ

OpenSSLのインストールと基本的な設定が完了したら、次のステップに進むことができます。

  • より高度なOpenSSLコマンドの学習:

    • OpenSSLには、証明書管理、暗号化、ハッシュ計算など、さまざまなタスクを実行するための多くのコマンドが用意されています。
  • OpenSSLプログラミング:

    • OpenSSLライブラリを使用して、アプリケーションにセキュリティ機能を追加する方法を学びます。
  • Webサーバーの設定:

    • ApacheやNginxなどのWebサーバーでOpenSSLを使用して、HTTPSを有効にする方法を学びます。

まとめ

この記事では、OpenSSL 1.1.1のインストールと基本的な設定について解説しました。OpenSSLは、セキュアな通信を行うための重要なツールであり、その基本的な使い方を理解することは、システム管理者や開発者にとって不可欠です。この記事が、OpenSSLの学習の助けになることを願っています。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール