この記事では、openssl
を使用して自己署名SSL証明書を作成する方法について説明します。 ツール。
自己署名SSL証明書とは何ですか? #
自己署名SSL証明書は、信頼できる認証局ではなく、証明書を作成した人によって署名された証明書です。自己署名証明書は、信頼できるCA署名SSL証明書と同じレベルの暗号化を持つことができます。
Webブラウザーは、自己署名証明書を有効として認識しません。自己署名証明書を使用する場合、Webブラウザーは、Webサイト証明書を検証できないという警告を訪問者に表示します。
通常、自己署名証明書は、テスト目的または内部使用のために使用されます。インターネットに公開されている本番システムでは、自己署名証明書を使用しないでください。
前提条件#
自己署名証明書を生成するには、OpenSSLツールキットが必要です。
openssl
かどうかを確認するには パッケージがLinuxシステムにインストールされている場合は、ターミナルを開き、openssl version
と入力します。 、Enterキーを押します。パッケージがインストールされている場合、システムはOpenSSLバージョンを出力します。そうでない場合は、openssl command not found
のようなものが表示されます。 。
opensslパッケージがシステムにインストールされていない場合は、ディストリビューションのパッケージマネージャーを使用してインストールできます。
-
UbuntuとDebian
sudo apt install openssl
-
CentosとFedora
sudo yum install openssl
新しい自己署名SSL証明書を作成するには、openssl req
を使用します コマンド:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out example.crt \
-keyout example.key
コマンドを分解して、各オプションの意味を理解しましょう。
-
-newkey rsa:4096
-新しい証明書要求と4096ビットのRSAキーを作成します。デフォルトは2048ビットです。 -
-x509
-X.509証明書を作成します。 -
-sha256
-265ビットのSHA(セキュアハッシュアルゴリズム)を使用します。 -days 3650
-証明書を認証する日数。 3650は10年です。任意の正の整数を使用できます。-nodes
-パスフレーズなしでキーを作成します。-
-out example.crt
-新しく作成された証明書を書き込むファイル名を指定します。任意のファイル名を指定できます。 -
-keyout example.key
-新しく作成された秘密鍵を書き込むファイル名を指定します。任意のファイル名を指定できます。
openssl req
の詳細については コマンドオプションについては、OpenSSLreqのドキュメントページにアクセスしてください。
Enterキーを押すと、コマンドは秘密鍵を生成し、一連の質問をします。ご提供いただいた情報は、証明書の生成に使用されます。
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
要求された情報を入力し、Enter
を押します 。
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Alabama
Locality Name (eg, city) []:Montgomery
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linuxize
Organizational Unit Name (eg, section) []:Marketing
Common Name (e.g. server FQDN or YOUR name) []:linuxize.com
Email Address []:[email protected]
証明書と秘密鍵は、指定された場所に作成されます。 lsコマンドを使用して、ファイルが作成されたことを確認します。
ls
example.crt example.key
それでおしまい!新しい自己署名SSL証明書を生成しました。
新しい証明書とキーを外部ストレージにバックアップすることは常に良い考えです。
プロンプトなしで自己署名SSL証明書を作成する#
質問を求められずに自己署名SSL証明書を生成する場合は、-subj
を使用します。 オプションを選択し、すべての件名情報を指定します:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out example.crt \
-keyout example.key \
-subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----
-subj
で指定されたフィールド 行は以下のとおりです:
-
C=
- 国名。 2文字のISOの略語。 -
ST=
-州または県の名前。 -
L=
-地域名。あなたがいる都市の名前。 -
O=
-組織のフルネーム。 -
OU=
-組織単位。 -
CN=
-完全修飾ドメイン名。
結論#
このガイドでは、opensslツールを使用して自己署名SSL証明書を生成する方法を示しました。証明書を取得したので、それを使用するようにアプリケーションを構成できます。
ご不明な点がございましたら、お気軽にコメントをお寄せください。