:私は、Webアプリケーション(たとえば建物だwww.mywebapp.example
-ユーザーは自分のドメインをポイントすることができます)www.xyz.example
にします- www.mywebapp.example
。ユーザーがに移動するとwww.xyz.example
、www.mywebapp.example
代わりにコンテンツが提供されます。ユーザーはその更新する方法を指示されます@
と、www
A records
そのドメインプロバイダのDNS設定で接続することwww.xyz.example
にwww.mywebapp.example
。
./certbot-auto -d <domain-name>
ドメインごとにを使用して、新しいSSL証明書を手動で作成できます。また、更新をテストするためにcronジョブを設定しました。
ただし、ユーザーがドメインをに接続するたびに、JavaScript関数からトリガーされるPHPスクリプトを実行して、このプロセスを自動化したいと思いますwww.mywebapp.example
。私の質問は次のとおりです。
./certbot-auto
コマンドを使用してPHPからコマンドを実行する必要がありexec()/shell_exec()
ますか?別のbashスクリプトを作成し、代わりにbashスクリプトを実行する必要がありますか?
LetsEncryptが推奨するACMEPHPライブラリを使用する必要があります-https : //letsencrypt.org/docs/client-options/
ドメインの新しいSSL証明書を手動で作成しましたがwww.xyz2.example
、これは正常にを指していましたwww.mywebapp.example
。ただし、これにより、既存のすべてのドメインのSSLサポートが機能しなくなりました- *.mywebapp.example, mywebapp.example, www.xyz.example
。を指すドメインごとに仮想ホストを作成する必要がありますwww.mywebapp.example
か?
/etc/httpd/conf.d/ssl.conf
新しい仮想ホストを追加するために編集する必要がありますか?複数のドメインが同じDocumentRoot
パスを使用できますか?次のリンクをすべて読みましたが、まだかなり混乱しています。
どんな助けでも大歓迎です。さらに詳しい情報が必要な場合は、お知らせください。
私のサーバー設定は次のとおりです。
1つに多くの質問があります。
exec()/ shell_exec()コマンドを使用してPHPから./certbot-autoコマンドを実行する必要がありますか?別のbashスクリプトを作成し、代わりにbashスクリプトを実行する必要がありますか?
一般的な場合:いいえ。
PHPは、Webページに到達すると実行されるため、現在のHTTPセッション内に存在し、反対側のブラウザーは、ある種の限られた時間内に、ある種の応答を待ちます(そうでない場合、ユーザーは怒ります)。何かが「速く」見えるのを見てください)。
実行する場合、2つのオプションがあります。
このような場合の一般的な解決策は次のとおりです。
LetsEncryptが推奨するACMEPHPライブラリを使用する必要があります-https : //letsencrypt.org/docs/client-options/
ACMEプロトコルを適切に実装する任意の言語の任意のライブラリを使用できます。
Let's Encryptは、次の1つのソフトウェアのみを推奨しますcertbot
。そのページにリストされている残りのすべては、動作することが期待されるクライアントライブラリ/プログラムの例です。
www.mywebapp.exampleを指すドメインごとに仮想ホストを作成する必要がありますか?
はい、特にそれぞれが特定の証明書を使用している場合、そうでない場合、Webサーバーは、ブラウザーが指定したホスト名(最初に使用されたSNI拡張機能内)に基づいて、TLSハンドシェイクの開始時に返す適切な証明書を識別できません。 TLSハンドシェイクの)
または、https://httpd.apache.org/docs/2.4/mod/mod_vhost_alias.htmlなどの大規模仮想ホスティングのApache機能を使用することもできます。ただし、これはおそらく、すべての名前が追加された単一の証明書を意味する場合があります。これは、ある程度の名前まで技術的には機能しますが、技術的でない問題(すべての名前が表示されるなど)を引き起こす可能性があります
もちろん、Nging / HAProxyのような他のソフトウェアは、より高度な機能を提供できます。仮想ホストごとに仮想ホストを構成する必要はなく、証明書が異なっていても、特定の名前で配置するだけで、Webサーバーは次のように一致します。必要です。
新しい仮想ホストを追加するには、/ etc / httpd / conf.d / ssl.confを編集する必要がありますか?
はい、または使用するInclude
か類似している限り、他のファイル。
多くの異なる個別のWebサイトを管理している場合、証明書パスなどを含め、Webサイトごとに1つの構成ファイルを作成する方が簡単な場合があります。多くのLinuxディストリビューションは/etc/httpd/sites-enabled/
、その機能に対応できる方法でApacheをインストールします。そうでない場合は、自分で同じことを行うことができます。
複数のドメインで同じDocumentRootパスを使用できますか?
もちろんはい。
PS:SSLと言うのはやめてください。プロトコルの名前はTLSで、20年前に発明されました。SSLは長い間使用されていません。現在の推奨事項は、脆弱性のある1.1および1.0も許可する正当な理由がある場合を除いて、TLS1.2を実行することです。この理由と誤称であるため、「SSL証明書」はありません。TLSは証明書がなくても機能し、これらの証明書はS / MIMEなどのTLSの外部で使用できます。X.509証明書です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加