自己署名の SSL 証明書を作成する
最終更新日 2022年01月27日(木)
Table of Contents
この記事を読む前に「Automated Certificate Management」を参照して、ニーズに合うかどうかを確認してください。
非本番アプリケーションまたはその他の実験用に SSL を使用するとき、自己署名の SSL 証明書を使用できます。この証明書では完全な暗号化が実装されますが、サイトの閲覧者には、証明書を信頼しないほうがよいというブラウザ警告が表示されます。
配布が制御されているアプリについては、独自認証局の証明書を作成し、それをユーザーのブラウザに追加することで、この警告を回避することができます。
前提条件
独自の証明書を生成するには、openssl ライブラリが必要です。ローカル環境で次のコマンドを実行して、すでに openssl がインストールされているかどうかを確認します。
$ which openssl
/usr/bin/openssl
which
コマンドでパスが返されない場合は、自分で openssl をインストールする必要があります。
所有している OS | インストールに使用するコード |
---|---|
Mac OS X | Homebrew: brew install openssl |
Windows | Windows 用完全パッケージ .exe インストーラー |
Ubuntu Linux | apt-get install openssl |
秘密鍵と証明書署名要求を生成する
SSL 証明書を作成するには、秘密鍵と証明書署名要求が必要です。これらは、いくつかの簡単なコマンドで生成できます。
openssl req
コマンドで「challenge password」の入力を求められたら、そのまま改行キーを押して、パスワードを空のままにしておきます。このパスワードは、証明書を取り消す必要がある場合に、認証局が所有者を認証するために使用します。今回は自己署名証明書のため、CRL (証明書失効リスト) 経由で証明書を取り消すことはありません。
詳細については、「Creating an SSL Certificate Signing Request」(SSL 証明書の署名要求を作成する) を参照してください。
$ openssl genrsa -aes256 -passout pass:gsahdg -out server.pass.key 4096
...
$ openssl rsa -passin pass:gsahdg -in server.pass.key -out server.key
writing RSA key
$ rm server.pass.key
$ openssl req -new -key server.key -out server.csr
...
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:California
...
A challenge password []:
...
SSL 証明書を生成する
自己署名 SSL 証明書は、server.key
秘密鍵と server.csr
ファイルから生成されます。
$ openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt
server.crt
ファイルは、server.key
秘密鍵と一緒に Heroku の SSL アドオンで使用するのに適したサイト証明書です。