質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Q&A

解決済

1回答

1233閲覧

さくらVPS(Centos)でnginxのSSL設定ができません(2)

numin

総合スコア37

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

0グッド

0クリップ

投稿2023/09/16 09:51

実現したいこと

先週投稿させていただいた質問の続きです。

さくらのVPSでSSL(JPRS ドメイン認証型)を申し込み、nginxに設定したいと思っているのですが、confファイルの設定が上手くいかず、エラーとなってしまいます。

前提

概要

さくらのVPSでSSL(JPRS ドメイン認証型)を申し込み、SSL証明書・中間CA証明書のダウンロード・結合・インストールを行ったのですが、最後のnginxの設定ができず、SSLを反映することができません。 どなたか正しい設定方法などをご存じありませんでしょうか。

前回からの流れ

前回の質問時に起きていたエラーについては、設定ファイル(ssl.conf)内の半角スペースが全てノーブレークスペースに置き換わってしまっていた影響であることがわかりました。
回答欄のご助言通りにスペースを全て半角に修正したところ設定ファイルは正しく読み込まれるようになったのですが、未だ下記のようなエラーが発生してしまい、SSLの設定ができない状況です。

発生している問題・エラーメッセージ

nginxのエラーログ

2023/09/13 13:21:58 [emerg] 1630558#1630558: cannot load certificate key "/etc/nginx/ssl.key/server.key": PEM_read_bio_PrivateKey() failed (SSL: error:1400006B:UI routines::processing error:while reading strings error:0480006D:PEM routines::problems getting password error:07880109:common libcrypto routines::interrupted or cancelled error:07880109:common libcrypto routines::interrupted or cancelled error:1C80009F:Provider routines::unable to get passphrase error:1400006B:UI routines::processing error:while reading strings error:0480006D:PEM routines::problems getting password error:07880109:common libcrypto routines::interrupted or cancelled error:04800068:PEM routines::bad password read)

nginx再起動時のエラーテキスト

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.

該当のソースコード

ディレクトリ構成

/etc/nginx/: - default.d - conf.d: ○ssl.conf(設定ファイル) - ssl.key: ○server.key(秘密鍵) - ssl.csr: ○server.csr - ssl.ctr: ○server.crt ○JPRS_DVCA_G4_PEM.cer ○ssl.pem(上記2つを結合したもの)

設定ファイル(ssl.conf)

server {     listen       80;     server_name  .nikukyu.com www.nikukyu.com;     rewrite     ^ https://nikukyu.com$request_uri?; } server {     listen       443 ssl http2;     #listen       [::]:443 ssl http2;     server_name  nikukyu.com www.nikukyu.com;     root         /var/www/html;     ssl_certificate "/etc/nginx/ssl.crt/ssl.pem";     ssl_certificate_key "/etc/nginx/ssl.key/server.key";     ssl_session_cache shared:SSL:1m;     ssl_session_timeout  5m;     ssl_protocols TLSv1.1 TLSv1.2;     ssl_prefer_server_ciphers on;     ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !kECDH !DSS !MD5 !EXP !PSK !SRP !CAMELLIA !SEED';     index index.html; }

試したこと

前回から変わりありません。
設定ファイルで「SSL」の指定方法や「http2」の有無を変える、pemファイル・keyファイいるの場所を変えるなどしましたが、効果はありませんでした。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bsdfan

2023/09/16 11:28

server.key ファイルにパスワード(パスフレーズ)がかけられていたりしませんか?
numin

2023/09/17 05:59

コメントを頂きありがとうございます。 私の知識不足で申し訳ないのですが、「パスフレーズがかかっている」とはどのような状況でしょうか? 「sudo vim server.key」とコマンドを入力すると問題なく中身を確認することができるのですが、如何でしょうか。 よろしくお願いします。
bsdfan

2023/09/17 10:43

vim で開けるかどうかは関係ありません。 ファイルの1行目が -----BEGIN ENCRYPTED PRIVATE KEY----- とかだとパスフレーズが設定されてます。 どうやって server.key を作成しましたか。作成時にパスフレーズを設定したか覚えていないですか?
numin

2023/09/17 11:32

はい、vimで確認したところ、そのような作りになっていました。 お恥ずかしいことに事前知識が殆どない状態からのスタートだったので、様々な解説サイトを参考に作成しました。 たしか「openssl genrsa -des3 -out server.key 2048」というコマンドを入力して、パスワードのようなものを設定した記憶があります。 作り方が間違っていたのでしょうか?
guest

回答1

0

ベストアンサー

発生しているエラーは、秘密鍵がパスフレーズで保護されていて(暗号化されていて)、読み込むことができないため、発生しています。

対処法としては

  • パスフレーズを解除した秘密鍵のファイルをつくる
  • パスフレーズを書いたファイルを用意してconfで設定する

のどちらかです。
ファイルの権限をきちんとしていれば、どちらでやってもセキュリティ的には差は無いと思います。

前者のパスフレーズを解除したkeyファイルの作り方は、
openssl rsa -in <パスフレーズ付き秘密鍵> -out <出力先ファイル名>
です。
https://qiita.com/kadoppe/items/0c289244a3a7286b3d75

後者の方法の、パスフレーズを別ファイルから読み込むには confファイルでssl_password_fileを設定します。
https://qiita.com/nnsnodnb/items/361deccadb0878fd34ea

投稿2023/09/17 12:57

bsdfan

総合スコア4899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

numin

2023/09/17 13:12

丁寧にご解説いただきありがとうございます。 無事、パスフレーズなしのkeyファイルを作成・指定することで設定できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問