ラズパイにもセキュリティを、不良実績入力の品質管理を暗号化通信で実現ラズパイで製造業のお手軽IoT活用(14)(2/3 ページ)

» 2023年08月23日 07時00分 公開

2.1.3 暗号化の設定

2.1.3.1 OpenSSLのダウンロードとインストール

 Nginx、Gunicornと同様にOpenSSLをダウンロードします。OpenSSLの公式サイトからダウンロードしてください。

 Nginxのインストールと初期設定を行います。Linuxのコマンドラインから、以下のようにコマンドを実行します。

sudo apt install openssl

2.1.3.2 SSL証明書の生成

 以下のコマンドでSSL設定ファイルを指定します。

export OPENSSL_CONF=/usr/local/ssl/openssl.cnf

 その後、カレントディレクトリを移動しておきます。

cd/etc/nginx/ssl

 次に、SAN(Subject Alternative Name)設定ファイルを準備します。以下のコマンドで設定ファイルの「san.cnf」を編集します。リスト3が設定内容になります。

sudo nano san.cnf
[SAN]
subjectAltName=@alt_names
basicConstraints=CA:FALSE
[alt_names]
DNS.1=localhost
IP.1=127.0.0.1
IP.2={{サーバPCのIPアドレス}}
リスト3 san.cnfの設定内容

 ここからは秘密鍵や証明書を作成する作業になります。以下のプロセスに従ってコマンド入力を進めてください。

  • サーバ用の秘密鍵の作成
    • sudo openssl genrsa -out localhost.key 2048
  • 自己証明局に向けた証明書署名要求を作成
    • sudo openssl req -new -key localhost.key -out localhost.csr
  • 自己署名サーバ証明書を作成
    • sudo openssl x509 -days 3650 -in localhost.csr -out server.crt -req-signkey localhost.key
  • 自己署名サーバ証明書を変換
    • sudo openssl pkcs12-export -inkey localhost.key -in server.crt -out server.p12
    • sudo openssl pkcs12 -in server.p12 -out server.pem
  • 自己証明局の秘密鍵を作成
    • sudo openssl pkcs12 -in server.p12 -nodes -out server-ca.key -nocerts
  • 自己証明書、自己秘密鍵、証明書署名要求を用いてサーバ証明書を作成
    • sudo openssl x509 -req -in localhost.csr -CA server.pem -CAkey server-ca.key -CAcreateserial -out server.crt -days 3650 -sha256 -extensions SAN -extfile san.cnf
  • 証明書の内容を確認
    • openssl x509 -in server.crt -text -noout

 最後に、Nginxの設定ファイルを書き換えます。以下のコマンドを実行した後、リスト4の設定ファイルを作成します。

sudo nano /etc/nginx/sites-available/default
server {
	listen 443 ssl default_server;
	server_name_;
	index index.html;
	ssl_certificate /etc/nginx/ssl/server.crt;
	ssl_certificate_key /etc/nginx/ssl/localhost.key;
	location / {
		include proxy_params;
		proxy_pass
	http://unix:/run/gunicorn/gunicorn.sock;
	}
}
リスト4 Nginxの設定ファイルを書き換える

2.2 ラズパイ側の設定

 まず、Webサーバの「/etc/nginx/ssl/server.crt」をラズパイのフォルダにコピーします。次に、ラズパイのブラウザの設定画面から証明書をインストールします。以下は、Chromeの例です。

  • 「設定」>「プライバシーとセキュリティ」>「セキュリティーデバイス証明書の管理」
  • 「信頼されたルート証明機関」のタブをクリック>「インポート」>「保存したファイルを選択」−「次へ」

 これによって暗号化ができるようになります。図2にある通り、パケットが暗号化されていることも確認できます。

図2 図2 暗号化前と暗号化後のパケットの違い[クリックで拡大]

Copyright © ITmedia, Inc. All Rights Reserved.