web-dev-qa-db-ja.com

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

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

  • 証明書
  • 証明書キー

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

64
Stefano Palazzo

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 

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

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

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

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

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

93
Stefano Palazzo

すでに述べたように、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

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

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

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

23
nietonfir