diff --git a/web/packages/teleport/src/Discover/Database/MutualTls/MutualTls.tsx b/web/packages/teleport/src/Discover/Database/MutualTls/MutualTls.tsx
index f6ad74b7b9ddd..3fa3e47cdd906 100644
--- a/web/packages/teleport/src/Discover/Database/MutualTls/MutualTls.tsx
+++ b/web/packages/teleport/src/Discover/Database/MutualTls/MutualTls.tsx
@@ -156,9 +156,7 @@ function DbEngineInstructions({ dbEngine }: { dbEngine: DatabaseEngine }) {
},
]}
/>
-
- Restart the database server to apply the configuration.
-
+
);
}
@@ -247,9 +245,7 @@ function DbEngineInstructions({ dbEngine }: { dbEngine: DatabaseEngine }) {
},
]}
/>
-
- Restart the database server to apply the configuration.
-
+
See{' '}
-
- Restart the database server to apply the configuration.
-
+
See{' '}
(
+
+ Restart the database server to apply the configuration. The certificate is
+ valid for 90 days so this will require installing an{' '}
+
+ updated certificate
+ {' '}
+ and restarting the database server before that to continue access.
+
+);
diff --git a/web/packages/teleport/src/Discover/Database/MutualTls/useMutualTls.ts b/web/packages/teleport/src/Discover/Database/MutualTls/useMutualTls.ts
index 6aa6bcc2631cd..0a73b10959eb2 100644
--- a/web/packages/teleport/src/Discover/Database/MutualTls/useMutualTls.ts
+++ b/web/packages/teleport/src/Discover/Database/MutualTls/useMutualTls.ts
@@ -113,7 +113,8 @@ function generateSignCertificateCurlCommand(
if (!token) return '';
const requestUrl = cfg.getDatabaseSignUrl(clusterId);
- const requestData = JSON.stringify({ hostname });
+ const ttl = cfg.getDatabaseCertificateTTL();
+ const requestData = JSON.stringify({ hostname, ttl });
// curl flag -OJ makes curl use the file name
// defined from the response header.
diff --git a/web/packages/teleport/src/config.ts b/web/packages/teleport/src/config.ts
index dbca15d32902b..914c2fc65c7bf 100644
--- a/web/packages/teleport/src/config.ts
+++ b/web/packages/teleport/src/config.ts
@@ -125,6 +125,8 @@ const cfg = {
dateFormat: 'YYYY-MM-DD',
},
+ defaultDatabaseTTL: '2190h',
+
routes: {
root: '/web',
discover: '/web/discover',
@@ -776,6 +778,11 @@ const cfg = {
return generatePath(cfg.api.dbSign, { clusterId });
},
+ getDatabaseCertificateTTL() {
+ // the length of the certificate to request for the database
+ return cfg.defaultDatabaseTTL;
+ },
+
getDesktopsUrl(clusterId: string, params: UrlResourcesParams) {
return generateResourcePath(cfg.api.desktopsPath, {
clusterId,