基礎知識

  • SSLは共通鍵暗号方式と公開鍵暗号方式の両方を使用する
  • 公開鍵暗号方式は、データ授受に用いる共通鍵のやり取りのみに用いられる
  • 送信データは共通鍵にて暗号化される

通信トラフィック

OpenSSL

  • 1.0.0 が出ているが、Apacheのconfigure時にエラーが出たりトラブルに遭遇するので、まだ使わない方が良い

インストール

# ./config shared -fPIC
# make
# make test
# make install
  • 上記は64bit版Linuxの場合
  • sharedはシェアードライブラリ(共有ライブラリ)を作るという指定

プログラミング

動作検証

OpenSSL

wget

証明書

Root証明書

  • Google roots.pem ... 基本的にはこれで十分(但し、Let's Encryptは未対応?)

GoogleのRoot認証局

Root証明書ファイルの有効期限を確認する方法

  • 任意のルート証明書ファイルの中身を確認
    $ openssl x509 -text -noout -in 確認対象ファイル.pem
  • 指定ディレクトリ以下のファイルを対象に一括で確認
    $ find  /etc/ssl/certs/*.pem -type f -exec echo "--------------------" \; -exec echo {} \; -exec bash -c "openssl x509 -text -noout -in {} | head" \;

Linux

$ curl https://pki.goog/roots.pem -O
$ sudo mv roots.pem /etc/pki/ca-trust/source/anchors/
$ sudo update-ca-trust 

自己証明書

IoTデバイス用

Let's Encrypt

Root証明書

  • Let's Encryptでもルート証明書を発行しているが、現段階では多くのルート証明書ストアに採用されていない
    • Let's Encryptのルート証明書「ISRG Root X1」は、モダンなブラウザやOSでは既に利用可能となっており、今後は(Iden Trustから)独自のルート証明書へ移行していくことが発表されている
    • しかし、古いOSやスマートフォンなどには、このルート証明書が搭載されていないため、現在はIden Trustというルート認証局が運用する「DST Root CA X3」というルート証明書でクロス署名された中間証明書を利用している
    • Iden TrustはISRGのスポンサーでもある

Windows

ASP.NET Coreの場合

  • DocumentRoot?】/web.config の以下の部分をコメントアウトする
    <system.webServer>
        <!--
        <handlers>
          <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
        </handlers>
        -->
  • DocumentRoot?】/.well-known/acme-challenge/web.config を配置
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <system.webServer>
        <httpRedirect enabled="false" />
        <validation validateIntegratedModeConfiguration="false" />
        <staticContent>
          <clear />
          <mimeMap fileExtension="." mimeType="text/json" />
          <mimeMap fileExtension=".*" mimeType="text/json" />
        </staticContent>
      </system.webServer>
      <system.web>
        <authorization>
          <allow users="*" />
        </authorization>
      </system.web>
    </configuration>
  • 設定が完了したら【DocumentRoot??】/web.config のコメントアウトを解除する

エラー対応

ACME

自己署名入り証明書

負荷

常時SSL化


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-04-11 (火) 14:48:55 (374d)