> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# atoti.ClientCertificate

### *final class* atoti.ClientCertificate

A client certificate to [`connect()`](./atoti.Session.connect#atoti.Session.connect) to a session configured with [`ClientCertificateConfig`](./atoti.config.security.client_certificate_config#atoti.ClientCertificateConfig).

### Example

```pycon theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
>>> certificate_authority = certificates_directory / "root-CA.crt"
>>> session_config = tt.SessionConfig(
...     security=tt.SecurityConfig(
...         client_certificate=tt.ClientCertificateConfig(
...             trust_store=certificates_directory / "truststore.jks",
...             trust_store_password="changeit",
...         ),
...         https=tt.HttpsConfig(
...             certificate=certificates_directory / "localhost.p12",
...             certificate_authority=certificate_authority,
...             password="changeit",
...         ),
...     )
... )
>>> session = tt.Session.start(session_config)
>>> session.security.individual_roles["patachoux"] = {"ROLE_BOT", "ROLE_USER"}
>>> # The session requires authentication:
>>> tt.Session.connect(
...     session.url, certificate_authority=certificate_authority
... )  
Traceback (most recent call last):
    ...
httpx.HTTPStatusError: Client error '401 '...
>>> connected_session = tt.Session.connect(
...     session.url,
...     authentication=tt.ClientCertificate(
...         certificates_directory / "client.pem",
...         keyfile=certificates_directory / "client.key",
...     ),
...     certificate_authority=certificate_authority,
... )
>>> user = connected_session.user
>>> user.name
'patachoux'
>>> sorted(user.roles)
['ROLE_BOT', 'ROLE_USER']
```

#### certificate *: [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path)*

Path to the `.pem` file containing the client certificate.

#### keyfile *: [Path](https://docs.python.org/3/library/pathlib.html#pathlib.Path) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

Path to the certificate `.key` file.

#### password *: [str](https://docs.python.org/3/library/stdtypes.html#str) | [None](https://docs.python.org/3/library/constants.html#None)* *= None*

The certificate password.
