自己署名SSL証明書を作成するにはどうすればよいですか?


64

ウェブサーバーでSSLを設定しましたが、2つのファイルが必要になりました。

  • 証明書
  • 証明書キー

テスト目的で自己署名証明書を作成するにはどうすればよいですか?

回答:


93

Ubuntuは、「最小限の」フレーバーでさえ、ssl-certパッケージが事前にインストールされているため、何もする必要はありません。

探しているファイルはすでにシステムにあります:

/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key


高度:

何らかの理由で新しい証明書を作成する必要がある場合は、実行できます

sudo make-ssl-cert generate-default-snakeoil --force-overwrite 

証明書の有効期限を変更する場合は、でmake-ssl-certスクリプトを操作できます/usr/sbin/make-ssl-cert。124のように、次のような行があります。

openssl req -config $TMPFILE -new -x509 -nodes \ 

-days引数を追加して有効期限を変更できる場所:

openssl req -config $TMPFILE -new -days 365 -x509 -nodes \ 

その他のオプションは、のマニュアルページにありreqます。


10
ubuntu-server 12.04(AMIクラウドイメージ)には、デフォルトでssl-certがインストールされていません。ただし、ssl-certをインストールすると、/ etc / ssl / certs / ssl-cert-snakeoil.pemが自動的に使用可能になります。
スターン

make-ssl-certは、キーの長さ(およびその他の設定)を使用してから使用し/usr/share/ssl-cert/ssleay.cnfます。
ティムスミス14

ローカルのVagrant VMインスタンスでWebサイトをテストしようとして、Google Chromeが完全に通常の証明書であるかのように動作するようにしたかったのです。最初に、VM CLIのコマンドwww.test.mydomain.comを使用して、テストURL(例:)に一致するようにVMのホスト名を設定する必要がありましたhostname。次に、提案どおりにキーを再生成し--force-overwrite、キーの共通名(CN)をテストURLと一致させます。最後に、ホストマシンで、キーを信頼されたルート認証局として(Chromeの設定/詳細設定で)インストールすると、切望された緑色のアドレスバーが表示されました。
バトルビュータス

1
私の9歳の証明書は、debian 10へのアップグレードで動作しなくなったので、このmake-ssl-certコマンドで時間を節約できました!
ジェイエン

23

すでに述べたように、Ubuntu Serverには必要なツールが付属しています。サーバーのバージョンに応じて、特定のドキュメントを検索する必要があります現在のLTS(12.04)の自己署名証明書生成プロセスを要約しようと思います。

最初に、証明書署名要求(CSR)のキーを生成します。

openssl genrsa -des3 -out server.key 2048

パスフレーズを入力するかどうかはあなた次第です。その場合、その証明書を使用してサービスを(再)開始するたびに、パスフレーズを提供する必要があります。Otohでは、安全なパスフレーズからパスフレーズなしで「安全でない」キーを作成できます。

openssl rsa -in server.key -out server.key.insecure
# shuffle the key names to continue without passphrases
mv server.key server.key.secure
mv server.key.insecure server.key

そして、キーからCSRを作成します。CSRとキーを使用して、自己署名証明書を生成できます。

openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

最後のステップは、通常はDebian / Ubuntuに証明書とキーをインストールすることです/etc/ssl

sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

最後に、証明書/キーを使用するアプリケーションをそれに応じて構成する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.