現在表示中:

AEM のセキュリティを継続的に向上させる取り組みの中で、アドビはデフォルトの SSL という機能を導入しました。AEM インスタンスへの接続で HTTPS の使用を促すことがその目的です。

デフォルトの SSL の有効化

AEM ホーム画面から該当するインボックスメッセージをクリックすることによって、デフォルトの SSL の設定を開始できます。インボックスを表示するには、画面の右上隅にあるベルのアイコンを押します。次に、「すべて表示」をクリックします。すべてのアラートのリストが順序付けられてリストビューで表示されます。

リストで、HTTPS を設定アラートを選択して開きます。

chlimage_1

ssl-service というサービスユーザーが、この機能のために作成されています。このアラートを開くと、以下の設定ウィザードに進みます。

  1. 最初に、「ストア資格情報」を設定します。これらは、HTTPS リスナーの秘密鍵とトラストストアが格納される、ssl-service システムユーザーのキーストアの資格情報です。

     

    chlimage_1
  2. 資格情報を入力したら、ページの右上隅にある「次へ」をクリックします。次に、関連する秘密鍵および SSL 接続用の証明書をアップロードします。

    chlimage_1

    注意:

    ウィザードで使用する秘密鍵および証明書の生成方法について詳しくは、以下のこの手順を参照してください。

  3. 最後に、HTTPS リスナーの TCP ポートを指定します。

    chlimage_1

デフォルトの SSL の自動化

デフォルトの SSL の自動化には 3 つの方法があります。

HTTP POST の使用

最初の方法には、設定ウィザードで使用される SSLSetup サーバーへの送信が含まれます。

POST /libs/granite/security/post/sslSetup.html

以下のペイロードを POST で使用して設定を自動化できます。

------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="keystorePassword"
 
test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="keystorePasswordConfirm"
test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="truststorePassword"
test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="truststorePasswordConfirm"
test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="privatekeyFile"; filename="server.der"
Content-Type: application/x-x509-ca-cert
 
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="certificateFile"; filename="server.crt"
Content-Type: application/x-x509-ca-cert
 
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="httpsPort"
8443

サーブレットは、Sling のすべての POST サーブレットと同様に、200 OK またはエラーの HTTP ステータスコードで応答します。ステータスの詳細は、応答の HTML 本文にあります。

成功の応答とエラーの応答の両方の例を次に示します。

 

成功の例(ステータス = 200):

<!DOCTYPE html>
<html lang='en'>
<head>
<title>OK</title>
</head>
<body>
<h1>OK</h1>
<dl>
<dt class='foundation-form-response-status-code'>Status</dt>
<dd>200</dd>
<dt class='foundation-form-response-status-message'>Message</dt>
<dd>SSL successfully configured</dd>
<dt class='foundation-form-response-title'>Title</dt>
<dd>OK</dd>
<dt class='foundation-form-response-description'>Description</dt>
<dd>HTTPS has been configured on port 8443. The private key and
certificate were stored in the key store of the user ssl-service.
Please take note of the key store password you provided. You will need
it for any subsequent updating of the private key or certificate.</dd>
</dl>
<h2>Links</h2>
<ul class='foundation-form-response-links'>
<li><a class='foundation-form-response-redirect' href='/'>Done</a></li>
</ul>
</body>
</html>

 

エラーの例(ステータス = 500):

<!DOCTYPE html>
<html lang='en'>
<head>
<title>Error</title>
</head>
<body>
<h1>Error</h1>
<dl>
<dt class='foundation-form-response-status-code'>Status</dt>
<dd>500</dd>
<dt class='foundation-form-response-status-message'>Message</dt>
<dd>The provided file is not a valid key, DER format expected</dd>
<dt class='foundation-form-response-title'>Title</dt>
<dd>Error</dd>
</dl>
</body>
</html>

パッケージの使用

または、以下の必要な項目が既に含まれているパッケージをアップロードすることにより、SSL 設定を自動化できます。

  • ssl-service ユーザーのキーストア。これは、リポジトリの /home/users/system/security/ssl-service/keystore にあります。
  • GraniteSslConnectorFactory 設定

ウィザードで使用する秘密鍵/証明書ペアの生成

以下は、SSL ウィザードで使用できる DER 形式の自己署名証明書を作成する例です。

注意:

自己署名証明書は例を示すためにのみ使用しており、実稼動では使用しないでください。

  1. 最初に、秘密鍵を作成します。

    openssl genrsa -aes256 -out localhostprivate.key 4096
    openssl rsa -in localhostprivate.key -out localhostprivate.key
  2. 次に、秘密鍵を使用して証明書署名要求(CSR)を生成します。

    openssl req -sha256 -new -key localhostprivate.key -out localhost.csr -subj '/CN=localhost'
  3. SSL 証明書を生成し、秘密鍵を使用してそれに署名します。この例では、1 年後に期限切れになります。

    openssl x509 -req -days 365 -in localhost.csr -signkey localhostprivate.key -out localhost.crt

秘密鍵を DER 形式に変換します。SSL ウィザードでは鍵は DER 形式である必要があるので、このようにします。

openssl pkcs8 -topk8 -inform PEM -outform DER -in localhostprivate.key -out localhostprivate.der -nocrypt

最後に、このページで最初に説明したグラフィカルな SSL ウィザードの手順 2 で、localhostprivate.der を秘密鍵としてアップロードし、localhost.crt を SSL 証明書としてアップロードします。

cURL での SSL 設定の更新

cURL ツールを使用して SSL 設定を自動化することもできます。そのためには、設定パラメーターを次の URL に送信します。

http://serveraddress:serverport/libs/granite/security/post/sslSetup.html

以下は、設定ウィザードの様々な設定を変更するために使用できるパラメーターです。

  • -F "keystorePassword=password" - キーストアのパスワード。
  • -F "keystorePasswordConfirm=password" - キーストアのパスワードを確認します。
  • -F "truststorePassword=password" - トラストストアのパスワード。
  • -F "truststorePasswordConfirm=password" - トラストストアのパスワードを確認します。
  • -F "privatekeyFile=@localhostprivate.der" - 秘密鍵を指定します。
  • -F "certificateFile=@localhost.crt" - 証明書を指定します。
  • -F "httpsPort=8443" - HTTPS リスナーが動作するポート。

注意:

SSL 設定を自動化するための cURL は、DER および CRT ファイルが存在するフォルダーから実行すると最も速く実行されます。または、privatekeyFile および certificateFile 引数でフルパスを指定できます。

また、更新を実行するには認証される必要もあるので、cURL コマンドに -u user:passeword パラメーターを付加します。

正しい cURL POST コマンドは、次のようになります。

curl -u user:password -F "keystorePassword=password" -F "keystorePasswordConfirm=password" -F "truststorePassword=password" -F "truststorePasswordConfirm=password" -F "privatekeyFile=@localhostprivate.der" -F "certificateFile=@localhost.crt" -F "httpsPort=8443" http://host:port/libs/granite/security/post/sslSetup.html

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー