らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

macOS 10.15 (Catalina) で自己証明書を用いた Web サイトへアクセスする

macOS 10.15 (Catalina) だと Chrome で自己証明書などを用いており、キーチェーンに証明書がインストールされていない Web サイトにアクセスすると xxxx にアクセスを続ける (安全ではありません) ボタンも表示されず、Web サイトにアクセス出来ません。

f:id:sig9:20191227231700p:plain:w480

この問題を回避するには下記の二通り、対処方法があります。

  1. Safari 等、別ブラウザで一度アクセスし、自己証明書をキーチェーンにインストールする
  2. CLIsecurity コマンドで自己証明書をキーチェーンにインストールする

今回は各々の方法をメモしておきます。

Safari を使う方法

Step.1

Safari を起動し、証明書のインポートを行いたい URL へアクセスし、表示部分の下側にある この Web サイトを閲覧 をクリックします。

f:id:sig9:20191227231704p:plain

Step.2

「この Web サイトをプライベートではない接続で閲覧してもよいですか?」と聞かれるので Web サイトを閲覧 をクリックします。 これでキーチェーンにサーバ証明書がインポートされました。

f:id:sig9:20191227234502p:plain

Step.3

次はキーチェーンを起動し、先程インポートした証明書を探し、ダブルクリックします。

f:id:sig9:20191227234505p:plain

Step.4

証明書の内容が表示されるので 信頼 をクリックして展開します。

f:id:sig9:20191227234508p:plain

STep.5

「この証明書を使用するとき」という項目を 常に信頼 へ変更します。 これで設定は完了です。

f:id:sig9:20191227234512p:plain

Step.6

再度、Chrome でサーバへアクセスすると (自己証明書を利用したサイトなので警告は表示されていますが) xxxx にアクセスする (安全ではありません) ボタンが表示されていることが分かります。 これで自己証明書を利用したサイトにも Chrome からアクセス出来るようになりました。

f:id:sig9:20191227234515p:plain

CLIsecurity コマンドを使う方法

openssl で該当サイトへアクセスして証明書の内容を表示し、それをリダイレクトしてファイルに保存します。 更に、そのファイルを security コマンドでキーチェーンへインポートします。

openssl s_client -showcerts -connect example.net:443 < /dev/null > self-cert.pem
sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" self-cert.pem

後は Safari の場合と同様、キーチェーンを開き、該当の証明書が 常に信頼 されるように設定して完了です。 もしくは openssl s_client コマンドで保存した証明書を Finder 上からダブルクリックしてキーチェーンにインポートするのも手軽かも知れません。

参考