35
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

nginx で オレオレ証明書をする

概要

http だと、chromeなどで「保護されていない通信」と表示されてしまう。
ちゃんとしたサイトっぽいので、https へと変換しよう!
こちらを参考に設定させて頂きました!

やることリスト

  • openssl インストール
  • 秘密鍵の作成
  • CSR(証明書署名要求)の作成
  • CRT(SSLサーバ証明書)の作成
  • nginx の設定

ファイルの作成

openssl のインストール

$ sudo yum install openssl

秘密鍵の作成

$ sudo mkdir /etc/nginx/ssl
$ sudo openssl genrsa -out /etc/nginx/ssl/server.key 2048

CSR(証明書署名要求)の作成

$ sudo openssl req -new -key /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.csr

「Common Name」には、サーバのドメイン名を入力します。
↓参考画像
image.png

作成されたファイルを確認すると、2つのファイルが出来ています。

$ ls /etc/nginx/ssl
server.csr  server.key

CRT(SSLサーバ証明書)の作成

今回はオレオレ証明書を作成するので、CRTファイルは自分で作成します。
本来このファイルは、証明局へ登録すると発行してもらえるファイルになります。

$ sudo openssl x509 -days 3650 -req -signkey /etc/nginx/ssl/server.key -in /etc/nginx/ssl/server.csr -out /etc/nginx/ssl/server.crt
$ ls /etc/nginx/ssl/
server.crt  server.csr  server.key

これで、3ファイルの作成が完了です。

nginxの設定

$ sudo vi /etc/nginx/conf.d/[任意のファイル].conf
server {
    # 443番ポートを許可し、SSL機能をON
    # listen 80;
    listen 443 ssl;

    # 証明書を設定
    ssl_certificate     /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;
}

nginx を再起動

$ sudo systemctl restart nginx

[https://サーバのURLかドメイン] で接続して、確認
オレオレ証明書なので、ブラウザでブロックされるので、そのまま進めば自分のページが見れます。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
35
Help us understand the problem. What are the problem?