2017-08-15 10 views
0

私は、複数のドメインがすべて同じVMを指しています。 (mydomain1.com、mydomain2.com、mydomain3.eu) は、今私はこのようになります巨大nginx.confあります。これを短縮する方法パラメータnginx confのサーバ名

server { 
    listen 443 ssl; 
    server_name *.mydomain1.com; 
    ssl on; 
    ssl_certificate /etc/nginx/ssl/mydomain1.com.chained.crt; 
    ssl_certificate_key /etc/nginx/ssl/mydomain1.com.key; 
    # hundred more lines of rules 
} 
server { 
    listen 443 ssl; 
    server_name *.mydomain2.com; 
    ssl on; 
    ssl_certificate /etc/nginx/ssl/mydomain2.com.chained.crt; 
    ssl_certificate_key /etc/nginx/ssl/mydomain2.com.key; 
    # the same hundred more lines of rules 
} 
server { 
    listen 443 ssl; 
    server_name *.mydomain3.eu; 
    ssl on; 
    ssl_certificate /etc/nginx/ssl/mydomain3.eu.chained.crt; 
    ssl_certificate_key /etc/nginx/ssl/mydomain3.eu.key; 
    # the same hundred more lines of rules 
} 

ございます - 現在、私はクローンだからとな巨大なコードblcok私は新しいドメインを追加し、私のドメイン名が異なる3行だけを変更する必要があります。私は正しい構文を知らなくても何らかのパラメータ化を考えました:

SERVER_NAME = {request_server_name} 
ssl_certificate /etc/nginx/ssl/${SERVER_NAME}.chained.crt; 
ssl_certificate_key /etc/nginx/ssl/${SERVER_NAME}.key; 

これは可能ですか?どうやって?

+1

共通ブロックは、別個のファイルに配置する必要があり、いくつかの例示的な実装形態

ための記事の下に見ると 'include'を使用してインポート指令。 –

+0

@リチャードスミス、解答としてあなたの解答を投稿してください。 –

答えて

1

二つのことは、あなたがそれについて

マルチドメイン証明書SAN

を行うことができますが、マルチドメインSAN証明書を購入することができますがあります。これにより、同じ証明書で異なるドメインを使用することができます。だからこの方法では、複数のブロックを持つ必要はありません。あなたは自己署名証明書を使用している場合は、あなたはまだSAN証明書を作成することができ、自分自身

使用OpenRestryまたはnginxの+ LUA

あなたはLUAをサポートするようにOpenRestyやnginxのを使用し、同じ彼のssl_certificate_by_lua_blockディレクティブを使用することができます。

構文:ssl_certificate_by_lua_blockは{のluaスクリプト}

コンテキスト:サーバー

相:nginxのは、開始しようとしているとき、右の前に-SSLハンドシェイク

このディレクティブは、ユーザーLuaのコードを実行しますダウンストリームSSL(https)接続のSSLハンドシェイク

特に、SSL証明書チェーンと対応する秘密鍵を要求ごとに設定すると便利です。リモートから(例えば、cosocket APIを使用して)ノンブロッキングでハンドシェーク設定を読み込むことも便利です。また、ここでは純粋なLuaでのリクエストごとのOCSPステープル処理を行うこともできます。また

https://github.com/openresty/lua-nginx-module#ssl_certificate_by_lua_block

コードのhttps://medium.com/@mtourne/how-to-use-nginx-for-ssl-termination-for-any-domain-dc2e2c630058

https://blog.readme.io/auto-generating-ssl-certificates-for-custom-domains-using-lets-encrypt/

+0

いいですが、nginxだけが好きです。したがって、Richardが言及した 'include'指示文は良い選択肢でした。 – Munchkin

+0

セクションごとに複数のファイルを作成しますか? –

+0

いいえ、これらの "100行以上のルール"を含む* one *ファイルを作成し、このファイルを各サーバー{}セクションに含めました。 – Munchkin

関連する問題