Skip to content

Commit 29f3253

Browse files
authored
Certificate Download Page and Security Details
Make it easier for users to get the certficate, works in conjunction with stacklok/codegate#341
1 parent a5635bd commit 29f3253

File tree

6 files changed

+444
-20
lines changed

6 files changed

+444
-20
lines changed

public/certificates/.gitkeep

Whitespace-only changes.

public/certificates/codegate_ca.crt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
sssssss

src/App.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import { usePromptsStore } from "./hooks/usePromptsStore";
88
import { Sidebar } from "./components/Sidebar";
99
import { useSse } from "./hooks/useSse";
1010
import { Help } from "./components/Help";
11+
import { Certificates } from "./components/Certificates";
12+
import { CertificateSecurity } from "./components/CertificateSecurity";
1113

1214
function App() {
1315
const { prompts, loading, fetchPrompts } = usePromptsStore();
@@ -31,6 +33,8 @@ function App() {
3133
<Route path="/" element={<Dashboard />} />
3234
<Route path="/prompt/:id" element={<Chat />} />
3335
<Route path="/help/:section" element={<Help />} />
36+
<Route path="/certificates" element={<Certificates />} />
37+
<Route path="/certificates/security" element={<CertificateSecurity />} />
3438
</Routes>
3539
</div>
3640
</div>
+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
import { Card } from "./ui/card";
2+
3+
const SecurityShieldIcon = () => (
4+
<svg viewBox="0 0 24 24" className="w-16 h-16 text-teal-600">
5+
<path
6+
fill="none"
7+
stroke="currentColor"
8+
strokeWidth="2"
9+
strokeLinecap="round"
10+
strokeLinejoin="round"
11+
d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"
12+
/>
13+
<path
14+
fill="none"
15+
stroke="currentColor"
16+
strokeWidth="2"
17+
strokeLinecap="round"
18+
strokeLinejoin="round"
19+
d="M9 12l2 2 4-4"
20+
/>
21+
</svg>
22+
);
23+
24+
const KeySecurityIcon = () => (
25+
<svg viewBox="0 0 24 24" className="w-16 h-16 text-teal-600">
26+
<path
27+
fill="none"
28+
stroke="currentColor"
29+
strokeWidth="2"
30+
strokeLinecap="round"
31+
strokeLinejoin="round"
32+
d="M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4"
33+
/>
34+
</svg>
35+
);
36+
37+
const OpenSourceIcon = () => (
38+
<svg viewBox="0 0 24 24" className="w-16 h-16 text-teal-600">
39+
<circle
40+
cx="12"
41+
cy="12"
42+
r="10"
43+
fill="none"
44+
stroke="currentColor"
45+
strokeWidth="2"
46+
strokeLinecap="round"
47+
strokeLinejoin="round"
48+
/>
49+
<path
50+
fill="none"
51+
stroke="currentColor"
52+
strokeWidth="2"
53+
strokeLinecap="round"
54+
strokeLinejoin="round"
55+
d="M12 6v12m-6-6h12"
56+
/>
57+
</svg>
58+
);
59+
60+
export function CertificateSecurity() {
61+
return (
62+
<div className="max-w-4xl mx-auto h-[calc(100vh-4rem)] overflow-y-auto px-4 pr-6 pb-12">
63+
<h1 className="text-3xl font-bold mb-8">Certificate Security</h1>
64+
65+
<Card className="p-6 mb-8 bg-white shadow-lg border-2 border-gray-100">
66+
<div className="flex justify-center mb-4">
67+
<SecurityShieldIcon />
68+
</div>
69+
<h2 className="text-xl font-semibold mb-4">Robust Certificate Security</h2>
70+
<p className="text-gray-700 mb-4">
71+
Security is a top priority for us. We have designed CodeGates local certificate management with security in mind, balanced against ease of use.
72+
</p>
73+
<p className="text-gray-700">We will always seek to improve and balance security, privacy and usability as best as we can</p>
74+
</Card>
75+
76+
<Card className="p-6 mb-8 bg-white shadow-lg border-2 border-gray-100">
77+
<div className="flex justify-center mb-4">
78+
<KeySecurityIcon />
79+
</div>
80+
<h2 className="text-xl font-semibold mb-4">Key Security Features</h2>
81+
<div className="space-y-6">
82+
<div>
83+
<h3 className="font-semibold text-lg mb-2">Per-Domain Certificate Generation</h3>
84+
<p className="text-gray-700 mb-2">
85+
Instead of using wildcard certificates, CodeGate generates unique certificates for each domain. This approach minimizes security risks by limiting the impact of any single certificate compromise.
86+
</p>
87+
</div>
88+
89+
<div>
90+
<h3 className="font-semibold text-lg mb-2">High-Strength Encryption with 4096-bit RSA Keys</h3>
91+
<p className="text-gray-700 mb-2">
92+
CodeGate utilizes 4096-bit RSA keys for Certificate Authority operations, providing enhanced security compared to the standard 2048-bit keys. The increased key length significantly reduces the risk of brute-force attacks, ensuring long-term protection for your data. We use 2048 for the server certs to balance in performance.
93+
</p>
94+
</div>
95+
96+
<div>
97+
<h3 className="font-semibold text-lg mb-2">Secure SSL/TLS Configuration</h3>
98+
<p className="text-gray-700 mb-2">
99+
Our SSL context is configured to enforce the latest security standards, including strong cipher suites and disabling outdated protocols. This ensures secure and efficient encrypted communications.
100+
</p>
101+
</div>
102+
103+
<div>
104+
<h3 className="font-semibold text-lg mb-2">Certificate Caching and Management</h3>
105+
<p className="text-gray-700 mb-2">
106+
Certificates are cached efficiently to optimize performance without compromising security. Additionally, mechanisms are in place to manage certificate lifecycles and prevent resource exhaustion.
107+
</p>
108+
</div>
109+
</div>
110+
</Card>
111+
112+
<Card className="p-6 mb-8 bg-white shadow-lg border-2 border-gray-100">
113+
<div className="flex justify-center mb-4">
114+
<OpenSourceIcon />
115+
</div>
116+
<h2 className="text-xl font-semibold mb-4">Open Source and Community Engagement</h2>
117+
<div className="space-y-4">
118+
<p className="text-gray-700">
119+
Security has been a fundamental consideration throughout the development of CodeGate. Our comprehensive approach ensures that your development environment remains secure without sacrificing functionality or performance.
120+
</p>
121+
<p className="text-gray-700">
122+
We believe in transparency and continuous improvement. By making our code open source, we invite the global security community to review, audit, and contribute to enhancing our security measures.
123+
</p>
124+
<p className="text-gray-700">
125+
If you discover a security vulnerability or have suggestions for improvement, please reach out to us at <a href="mailto:[email protected]" className="text-blue-600 hover:text-blue-700 underline">[email protected]</a>. Your contributions help us maintain the highest security standards.
126+
</p>
127+
<p className="text-gray-700">
128+
Explore our codebase on <a href="https://github.com/stacklok/codegate" target="_blank" rel="noopener noreferrer" className="text-blue-600 hover:text-blue-700 underline">GitHub</a> and join our community in making CodeGate secure and reliable for everyone.
129+
</p>
130+
</div>
131+
</Card>
132+
</div>
133+
);
134+
}

0 commit comments

Comments
 (0)