-
Notifications
You must be signed in to change notification settings - Fork 45
Document automatic certificate selection in Chrome on ChromeOS #513
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
tashian
wants to merge
2
commits into
main
Choose a base branch
from
carl/con-263-document-automatic-certificate-selection-in-chrome-on
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+65
−1
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -20,7 +20,7 @@ offering simple remediation flows when an error occurs, | |||||
| and ensuring that web browsers are configured to find client certificates automatically, | ||||||
| so the user can have a seamless experience. | ||||||
|
|
||||||
| Smallstep browser certificates are available for macOS, Windows, and Linux devices. | ||||||
| Smallstep browser certificates are available for macOS, Windows, Linux, and ChromeOS devices. | ||||||
|
|
||||||
| ## Before you begin | ||||||
|
|
||||||
|
|
@@ -216,3 +216,67 @@ Use the <a href="about:certificate">about:certificate</a> URL to see all of the | |||||
| To test the certificate, restart the browser and visit one your target URLs. | ||||||
| You should not see any certificate selection dialogs. | ||||||
|
|
||||||
| ## ChromeOS | ||||||
|
|
||||||
| On managed Chromebooks, Smallstep certificates are made available to Chrome | ||||||
| by the Smallstep extension for ChromeOS. | ||||||
| Once the extension is deployed and a client certificate has been issued, | ||||||
| you can configure Chrome to select the certificate automatically. | ||||||
|
|
||||||
| Chrome policies are deployed to managed Chromebooks through the | ||||||
| [Google Workspace Admin Console](https://admin.google.com), | ||||||
| so there is no per-device configuration step. | ||||||
|
|
||||||
| ### Google Chrome client certificate auto-selection | ||||||
|
|
||||||
| To automatically select the Smallstep client certificate when a user visits a protected URL, | ||||||
| use the [`AutoSelectCertificateForUrls`](https://chromeenterprise.google/policies/?policy=AutoSelectCertificateForUrls) policy. | ||||||
|
|
||||||
| 1. In the Google Workspace Admin Console, visit **Devices → Chrome → Settings → Users & browsers**. | ||||||
| 2. Choose the organizational unit you want to apply the policy to. | ||||||
| 3. Find the **Client certificates** section and locate **Auto-select client certificate for these sites**. | ||||||
| 4. Add an entry for each protected URL, in the following format: | ||||||
|
|
||||||
| ```json | ||||||
| {"pattern":"[Server URL pattern]","filter":{"ISSUER":{"CN":"Smallstep [Team Slug] Accounts Intermediate CA"}}} | ||||||
| ``` | ||||||
|
|
||||||
| Replace `[Server URL pattern]` with the server that requires certificate authentication. | ||||||
| This field is a [Chrome Enterprise policy URL pattern](https://chromeenterprise.google/policies/url-patterns/). | ||||||
|
|
||||||
| - Example: `[.*]xample.com` matches `xample.com` and `hello.xample.com` for any scheme, port, and path. It will not match `example.com`. | ||||||
| - For more examples, see [the Chrome Enterprise docs](https://chromeenterprise.google/policies/url-patterns/). | ||||||
|
|
||||||
| Replace `[Team Slug]` with your Smallstep team slug. | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Did we remove the parentheses from the automatically generated names? In my testing I had to use, |
||||||
|
|
||||||
| 5. Save the policy. | ||||||
|
|
||||||
| The policy is applied to managed devices the next time they sync with Google Workspace. | ||||||
|
|
||||||
| To verify the policy is in effect, open Chrome on a managed Chromebook and visit [chrome://policy](chrome://policy). | ||||||
| Then visit one of your target URLs. | ||||||
| You should not see any certificate selection dialogs. | ||||||
|
|
||||||
| ### Wi-Fi client certificate auto-selection (802.1X) | ||||||
|
|
||||||
| For Wi-Fi networks that authenticate with EAP-TLS, | ||||||
| client certificate selection is configured per-network in the Google Workspace Admin Console. | ||||||
|
|
||||||
| 1. In the Google Workspace Admin Console, visit **Devices → Networks → Wi-Fi**. | ||||||
| 2. Edit or create the Wi-Fi network used for 802.1X authentication. | ||||||
| 3. Set the **EAP type** to **EAP-TLS**. | ||||||
| 4. Set the **Issuer pattern** to the full common name of your Smallstep intermediate issuing CA: | ||||||
|
|
||||||
| ``` | ||||||
| Smallstep [Team Slug] Accounts Intermediate CA | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| ``` | ||||||
|
|
||||||
| Replace `[Team Slug]` with your Smallstep team slug. | ||||||
|
|
||||||
| 5. Save the network configuration. | ||||||
|
|
||||||
| When a Chromebook connects to the network, | ||||||
| it will automatically select the Smallstep client certificate | ||||||
| issued by the matching intermediate CA, | ||||||
| without prompting the user. | ||||||
|
|
||||||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On ChromeOS, we currently only get certs from the Devices authority.
Adding support for (known) additional authorities with ACME DA provisioners shouldn't take long. Making the ChromeOS agent work fully similar to the agent will require more time, though.