開発者ドキュメント

CentOS6のnginxでSSL証明書を作成する方法

ステータス:非推奨

この記事では、サポートされなくなったバージョンのCentOSについて説明します。 現在CentOS6を実行しているサーバーを運用している場合は、サポートされているバージョンのCentOSにアップグレードまたは移行することを強くお勧めします。

理由: CentOS 6は2020年11月30日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このため、このガイドは維持されなくなりました。

代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のCentOSリリースでは機能しない場合があります。 可能な場合は、使用しているCentOSのバージョン用に作成されたガイドを使用することを強くお勧めします。

次のDigitalOceanチュートリアルは、CentOS7サーバーでNginxのSSL証明書を作成する方法の概要を示しているので興味深いかもしれません。

自己署名証明書について

SSL証明書は、サイトの情報を暗号化し、より安全な接続を作成する方法です。 さらに、証明書は、仮想プライベートサーバーの識別情報をサイト訪問者に示すことができます。 認証局は、サーバーの詳細を検証するSSL証明書を発行できますが、自己署名証明書にはサードパーティによる確証はありません。

イントロ

nginxがVPSにインストールされていることを確認してください。 そうでない場合は、2つの手順ですばやくインストールできます。

EPELリポジトリをインストールします。

su -c 'rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm' 

nginxをインストールします

yum install nginx

ステップ1-証明書のディレクトリを作成する

SSL証明書には、証明書自体と公開鍵の2つの主要部分があります。 関連するすべてのファイルに簡単にアクセスできるようにするには、それらを保存するディレクトリを作成する必要があります。

 sudo mkdir /etc/nginx/ssl

ディレクトリ内で次のいくつかの手順を実行します。

 cd /etc/nginx/ssl

ステップ2—サーバーキーと証明書署名要求を作成します

秘密サーバーキーを作成することから始めます。 このプロセス中に、特定のパスフレーズを入力するように求められます。 このフレーズを忘れたり紛失したりすると、証明書にアクセスできなくなりますので、注意してください。

sudo openssl genrsa -des3 -out server.key 1024

証明書署名要求を作成してフォローアップします。

sudo openssl req -new -key server.key -out server.csr

このコマンドは、入力する必要のあるフィールドのリストを表示するように端末に指示します。

最も重要な行は「共通名」です。 ここに公式ドメイン名を入力するか、まだ持っていない場合はサイトのIPアドレスを入力します。 チャレンジパスワードとオプションの会社名は空白のままにします。

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.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:NYC
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc
Organizational Unit Name (eg, section) []:Dept of Merriment
Common Name (e.g. server FQDN or YOUR name) []:example.com                  
Email Address []:webmaster@awesomeinc.com

ステップ3—パスフレーズを削除する

証明書の作成はほぼ完了です。 ただし、パスフレーズを削除することはできます。 パスフレーズを設定するとセキュリティが強化されますが、nginxをリロードしようとすると問題が発生します。 nginxがクラッシュしたり、再起動する必要がある場合は、常にパスフレーズを再入力して、Webサーバー全体をオンラインに戻す必要があります。

パスフレーズを削除するには、次のコマンドを使用します。

sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key

ステップ4—SSL証明書に署名する

証明書はほとんど完成しており、署名するだけです。 365を希望の日数に変更することで、証明書の有効期間を指定できることに注意してください。 現状では、この証明書は1年後に期限切れになります。

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

これで証明書の作成は完了です。

ステップ5—証明書を設定する

SSL構成ファイルを開きます。

 vi /etc/nginx/conf.d/ssl.conf

HTTPSサーバーの行の下のセクション内のコメントを解除します。 設定を以下の情報と一致させ、「server_name」行のexample.comをドメイン名またはIPアドレスに置き換えます。 証明書をテストするだけの場合は、デフォルトのルートが機能します。

# HTTPS server

server {
    listen       443;
    server_name example.com;

    ssl on;
    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key; 
}

次に、nginxを再起動します。

 /etc/init.d/nginx restart

https://youraddressにアクセスします。

そのページに自己署名証明書が表示されます。

資力

EtelSverdlov著
モバイルバージョンを終了