Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions en/includes/deploy/security/keystores/create-new-keystores.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@
2. Generate a keystore using an existing CA-signed certificate

!!! note
If you are creating a new keystore for [data encryption]({{base_path}}/deploy/security/asymmetric-encryption/use-asymmetric-encryption), make sure to acquire a public key certificate that contains the **Data Encipherment** key usage as explained [here]({{base_path}}/deploy/security/asymmetric-encryption/use-asymmetric-encryption/#recommendations-for-setting-up-keystores).

Check failure on line 11 in en/includes/deploy/security/keystores/create-new-keystores.md

View workflow job for this annotation

GitHub Actions / lint

Link text should be descriptive

en/includes/deploy/security/keystores/create-new-keystores.md:11:252 MD059/descriptive-link-text Link text should be descriptive [Context: "[here]"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md059.md

## Create a keystore using a new certificate

!!! note
The pubic key certificate we generate for the keystore is self-signed. For a CA-signed certificate, either [import it into the keystore](#add-ca-signed-certificates-to-keystores) or [create a new keystore with a CA-signed certificate](#create-a-keystore-using-an-existing-certificate).

Check failure on line 16 in en/includes/deploy/security/keystores/create-new-keystores.md

View workflow job for this annotation

GitHub Actions / lint

Link fragments should be valid

en/includes/deploy/security/keystores/create-new-keystores.md:16:112 MD051/link-fragments Link fragments should be valid [Context: "[import it into the keystore](#add-ca-signed-certificates-to-keystores)"] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md051.md

1. Navigate to the `<IS_HOME>/repository/resources/security/` directory in a command prompt. All keystores should be stored here.

Expand All @@ -21,7 +21,7 @@

=== "JKS"
``` bash
keytool -genkeypair -alias newcert -keyalg RSA -keysize 2048 -keystore newkeystore.jks -dname "CN=<testdomain.org>, OU=Home,O=Home,L=SL,S=WS,C=LK" -storepass mypassword -keypass mypassword

Check failure on line 24 in en/includes/deploy/security/keystores/create-new-keystores.md

View workflow job for this annotation

GitHub Actions / lint

Trailing spaces

en/includes/deploy/security/keystores/create-new-keystores.md:24:197 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md009.md
```

This command will create a keystore with the following details.
Expand All @@ -31,10 +31,10 @@
- **Keystore password**: `mypassword`
- **Private key password**: `mypassword`


Check failure on line 34 in en/includes/deploy/security/keystores/create-new-keystores.md

View workflow job for this annotation

GitHub Actions / lint

Multiple consecutive blank lines

en/includes/deploy/security/keystores/create-new-keystores.md:34 MD012/no-multiple-blanks Multiple consecutive blank lines [Expected: 1; Actual: 2] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md012.md

Check failure on line 34 in en/includes/deploy/security/keystores/create-new-keystores.md

View workflow job for this annotation

GitHub Actions / lint

Trailing spaces

en/includes/deploy/security/keystores/create-new-keystores.md:34:1 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 4] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md009.md
=== "PKCS12"
``` bash
keytool -genkeypair -alias newcert -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore newkeystore.p12 -dname "CN=<testdomain.org>, OU=Home,O=Home,L=SL,S=WS,C=LK" -storepass mypassword -keypass mypassword

Check failure on line 37 in en/includes/deploy/security/keystores/create-new-keystores.md

View workflow job for this annotation

GitHub Actions / lint

Trailing spaces

en/includes/deploy/security/keystores/create-new-keystores.md:37:215 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md009.md
```

This command will create a keystore with the following details.
Expand Down Expand Up @@ -164,6 +164,45 @@

{% endif %}

After creating the internal keystore, you need to configure it in the `deployment.toml` file located in the `<IS_HOME>/repository/conf/` directory.

Add the following configuration based on your keystore type:

=== "PKCS12"

```toml
[keystore.internal]
file_name = "<internal-keystore-name>.p12"
type = "PKCS12"
alias = "<internal-key-alias>"
password = "$secret{keystore_password}"
key_password = "$secret{keystore_password}"
```

Replace the placeholders with the values you used when creating the keystore:

- `<internal-keystore-name>`: The name of your internal keystore file (without the `.p12` extension in the file name, but include it in the `file_name` parameter)
- `<internal-key-alias>`: The alias you specified when creating the keystore

Comment on lines +182 to +186
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Clarify the placeholder replacement instructions.

The current explanation "(without the .p12 extension in the file name, but include it in the file_name parameter)" is confusing and appears contradictory. Since the template already shows file_name = "<internal-keystore-name>.p12", users should understand they only need to replace the placeholder part.

📝 Suggested clearer wording
     Replace the placeholders with the values you used when creating the keystore:
     
-    - `<internal-keystore-name>`: The name of your internal keystore file (without the `.p12` extension in the file name, but include it in the `file_name` parameter)
+    - `<internal-keystore-name>`: The name of your keystore (for example, if your keystore file is `internal.p12`, replace `<internal-keystore-name>` with `internal`)
     - `<internal-key-alias>`: The alias you specified when creating the keystore
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Replace the placeholders with the values you used when creating the keystore:
- `<internal-keystore-name>`: The name of your internal keystore file (without the `.p12` extension in the file name, but include it in the `file_name` parameter)
- `<internal-key-alias>`: The alias you specified when creating the keystore
Replace the placeholders with the values you used when creating the keystore:
- `<internal-keystore-name>`: The name of your keystore (for example, if your keystore file is `internal.p12`, replace `<internal-keystore-name>` with `internal`)
- `<internal-key-alias>`: The alias you specified when creating the keystore
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@en/includes/deploy/security/keystores/create-new-keystores.md` around lines
182 - 186, The placeholder guidance is confusing; update the text that explains
replacing `<internal-keystore-name>` and `<internal-key-alias>` to remove the
contradictory parenthetical and clearly state that users should replace only the
placeholder portion — e.g., keep the example `file_name =
"<internal-keystore-name>.p12"` as-is and instruct "replace
`<internal-keystore-name>` with your keystore name (do not include or remove the
`.p12` suffix in the example as it is already present), and replace
`<internal-key-alias>` with the alias you specified" so readers understand to
substitute just the placeholder parts; adjust the lines referencing
`<internal-keystore-name>` and `file_name = "<internal-keystore-name>.p12"`
accordingly.

=== "JKS"

```toml
[keystore.internal]
file_name = "<internal-keystore-name>.jks"
type = "JKS"
alias = "<internal-key-alias>"
password = "$secret{keystore_password}"
key_password = "$secret{keystore_password}"
```

Replace the placeholders with the values you used when creating the keystore:

- `<internal-keystore-name>`: The name of your internal keystore file (without the `.jks` extension in the file name, but include it in the `file_name` parameter)
- `<internal-key-alias>`: The alias you specified when creating the keystore
Comment on lines +198 to +201
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Clarify the placeholder replacement instructions.

Same clarity issue as the PKCS12 section above. The explanation about the extension is confusing.

📝 Suggested clearer wording
     Replace the placeholders with the values you used when creating the keystore:
     
-    - `<internal-keystore-name>`: The name of your internal keystore file (without the `.jks` extension in the file name, but include it in the `file_name` parameter)
+    - `<internal-keystore-name>`: The name of your keystore (for example, if your keystore file is `internal.jks`, replace `<internal-keystore-name>` with `internal`)
     - `<internal-key-alias>`: The alias you specified when creating the keystore
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@en/includes/deploy/security/keystores/create-new-keystores.md` around lines
198 - 201, Rewrite the placeholder instructions so they clearly state that
`<internal-keystore-name>` is the keystore's base name (no file extension) while
the `file_name` parameter must include the actual filename with the .jks
extension, and clarify that `<internal-key-alias>` is the alias used when
creating the keystore; mirror the clearer phrasing used in the PKCS12 section to
avoid contradictory wording.


!!! note
The password values use the `$secret{}` syntax, which references encrypted passwords. You should encrypt the actual keystore password using the [Cipher Tool]({{base_path}}/deploy/security/encrypt-passwords-with-cipher-tool) and use the encrypted value.

!!! warning
Adding an internal keystore to an existing deployment will make already encrypted data unusable. This should be done during initial setup only.

Expand Down
Loading