1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

1サーバー内でポート番号別にドメインを表示させる(VirtualHost,リバースプロキシ)

Last updated at Posted at 2022-09-08

ケース

すでに https://hoge.com というサイトを公開しているサーバーがある(IPは仮に111.22.333.444とする)
(今回はさくらVPSを使っています)
またこのサーバー内には,5443番ポートで動作しているnode.js(Express)アプリがある
このアプリをhttps://fuga.com というドアドレスで新たに公開したい

環境はApache2.4
centos7
です

DNSの設定とSSL証明書の取得

DNS設定

fuga.comのドメインおよびSSL証書を取得します
お名前.comでドメイン取得後,DNSレコードの設定から,AレコードにIPである111.22.333.444を設定
これでhttp://fuga.com にアクセスしても http://hoge.com と同様の内容が表示されることになります

SSL証明書の取得

openSSLを使ってSSL証明書を取得します
ざっくりとした流れは,

  1. サーバーの秘密鍵を作成
  2. 秘密鍵を使ってサーバー証明書を発行
  3. サーバー証明書を使ってSSL証明書の申請
    となります

作成前にopenSSLをインストールしておきましょう
参考:https://qiita.com/Esfahan/items/4e2002f4a24589b2d0bf
インストールできたらサーバーへSSH接続しコマンドを打っていきます

秘密鍵作成とサーバー証明書の発行

まず各種ファイルを保存するディレクトリに移動しましょう

例) $ cd /etc/pki/tls/certs/hoge.com

実は下記のようなコマンドを打つことで,1と2は同時に実行可能です

$ openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server.csr

このコマンドの意味は,
*2048bitの秘密鍵をserver.keyとして作成し,それを使ってserver.csrというサーバー証明書を発行する
というものです
このコマンドを打つと,サーバー証明書発行に伴う情報を色々聞かれます

Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:Tokyo
Locality Name (eg, city) [Newbury]:Chiyoda
Organization Name (eg, company) [My Company Ltd]:fuga.inc
Organizational Unit Name (eg, section) []:dev
Common Name (eg, your name or your server's hostname) []:fuga.com
Email Address []:(入力しなくてOK、エンターのみ入力)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:(入力しなくてOK、エンターのみ入力)
An optional company name []:(入力しなくてOK、エンターのみ入力)

注意点は,Common Nameはだんのドメイン名にするということです
これで2つのファイルが作成されました

補足:秘密鍵にパスフレーズを設定することもできますが,取り扱いが煩雑になるため,今回はパスフレーズ未設定とします

SSL証明書

SSL証明書の取得方法はいくつかありますが,今回はさくらのSSL,JPRSドメイン認証型にします
https://ssl.sakura.ad.jp/
説明に従っていけば取得はすぐだと思います
先ほど発行したサーバー証明書を使用してください

問題なく発行できれば
server.crtというSSL証明書がダウンロードできると思います
スクリーンショット 2022-09-09 7.59.53.png

加えて,中間CA証明書もダウンロードします
スクリーンショット 2022-09-09 8.03.29.png

JPRS_DVCA_G4_PEM.cerというファイルがダウンロードできました

この2つをサーバー内の管理しやすいディレクトリに設置しましょう
今回は先ほど同様/etc/pki/tls/certs/hoge.comへ入れました

VirtualHostの設定

NameVirtualHost *:443

<VirtualHost *:443>
ServerName fuga.com
Alias / /var/www/fuga.com
DocumentRoot /var/www/fuga.com

SSLEngine on
SSLProtocol All -SSLv2 -SSLv3 -TLSv1
LoadModule ssl_module modules/mod_ssl.so

SSLCertificateFile /etc/pki/tls/certs/fuga.com/server.crt # SSL証明書
SSLCertificateChainFile /etc/pki/tls/certs/fuga.com/JPRS_DVCA_G4_PEM.cer #中間CA証明書
SSLCertificateKeyFile /etc/pki/tls/certs/fuga.com/server.key # 秘密鍵

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

ProxyRequests Off
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off

ProxyPass / https://fuga.com:5443
ProxyPassReverse / https://fuga.com:5443/
</VirtualHost>

この設定により,/(https:fuga.com)にアクセスした時に,https:fuga.com:5443の内容が表示されることとなります

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?