LoginSignup
15
10

More than 5 years have passed since last update.

macOSで警告の出ないローカル開発環境用のSSL証明書を作成する

Posted at

はじめに

ローカルの開発環境でHTTPSアクセスをするときに証明書の警告が出て精神衛生上よろしくありません。
Keychain Access.appを使って証明書を作成することで、警告を出ないようにすることができます。

ルート証明書の作成

Keychain Access.appを起動します。

Keychain Access > Certificate Assistant > Create a Certificate...を選択します。
image

Certificate Assistantダイアログが表示されるので、以下のように入力・選択し、Createを押します。
image

Name 1 Identity Type Certificate
localhost Self Signed Root SSL Server

自己署名についての警告が出ますが、この証明書はローカルでのみ使用するためこのままContinueを押して続けます。
image

作成が成功した旨のメッセージが表示されますので、Doneを押して閉じます。
image

作成したルート証明書を信用設定

「localhost」で検索して、今作成したルート証明書を表示します。
image

下の「!」ボタンを押すか、ダブルクリックするとダイアログが表示されます。
image

Secure Sockets Layer (SSL)を「Always Trust」に変更します。
image

ダイアログを閉じる際にパスワードの入力を求められます。ここには自分のmacOSのアカウントのパスワードを入力します。
image

Kindprivate keyの秘密鍵を右クリックしてExport "localhost"...からエクスポートします。
image

秘密鍵を任意の場所に保存します。
image

秘密鍵へのパスワード設定のダイアログが表示されます。ここはパスワードを空のままOKを押します。
image

確認のダイアログが表示されるので、El Capitanの場合はここで再びOSのアカウントのパスワードを入力します。Sierraでは入力を求められないのでそのままAllowを押します。
image

Keychain Access.appでの作業は以上です。

鍵ファイルをPEM形式に変換

保存した秘密鍵をopensslコマンドでPEM形式に変換します。
ここではKeychain Access.appからlocalhost.p12という名前で保存したこととします。

$ openssl pkcs12 -in localhost.p12 -out localhost.pem -nodes

パスワードの入力を求められますが、空のままEnterでよいです。

Enter Import Password:
MAC verified OK

証明書の保存用ディレクトリを作成します。

$ mkdir ~/.localhost-ssl

localhost.pemlocalhost.crtlocalhost.keyに分離します。

BEGIN CERTIFICATEEND CERTIFICATEで囲まれた部分を~/.localhost-ssl/localhost.crtに保存します。

localhost.crt
-----BEGIN CERTIFICATE-----
...
...
...
-----END CERTIFICATE-----

BEGIN RSA PRIVATE KEYEND RSA PRIVATE KEYで囲まれた部分を~/.localhost-ssl/localhost.keyに保存します。

localhost.key
-----BEGIN RSA PRIVATE KEY-----
...
...
...
-----END RSA PRIVATE KEY-----

秘密鍵の方はパーミッションを変更しておきます。

$ chmod 600 ~/.localhost-ssl/localhost.key

おわりに

作成した鍵をNginxなどから参照するようにすることで、アクセス時に警告が出なくなります。
ただし、このままだとFirefoxからは警告が出るままなので要調査です。

参考


  1. この「Name」はアクセスしたいドメイン名に適宜置き換えてください。 

15
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
10