CA
This commit is contained in:
33
dns/migrations/005_add_certificate_challenges.sql
Normal file
33
dns/migrations/005_add_certificate_challenges.sql
Normal file
@@ -0,0 +1,33 @@
|
||||
-- Add certificate challenges table for CA functionality
|
||||
CREATE TABLE IF NOT EXISTS certificate_challenges (
|
||||
id SERIAL PRIMARY KEY,
|
||||
token VARCHAR(255) UNIQUE NOT NULL,
|
||||
domain VARCHAR(255) NOT NULL,
|
||||
challenge_type VARCHAR(20) NOT NULL CHECK (challenge_type IN ('dns')),
|
||||
verification_data VARCHAR(500) NOT NULL,
|
||||
status VARCHAR(20) DEFAULT 'pending' CHECK (status IN ('pending', 'valid', 'invalid', 'expired')),
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
expires_at TIMESTAMPTZ NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_certificate_challenges_token ON certificate_challenges(token);
|
||||
CREATE INDEX IF NOT EXISTS idx_certificate_challenges_domain ON certificate_challenges(domain);
|
||||
CREATE INDEX IF NOT EXISTS idx_certificate_challenges_expires_at ON certificate_challenges(expires_at);
|
||||
|
||||
-- Add table to store issued certificates
|
||||
CREATE TABLE IF NOT EXISTS issued_certificates (
|
||||
id SERIAL PRIMARY KEY,
|
||||
domain VARCHAR(255) NOT NULL,
|
||||
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
certificate_pem TEXT NOT NULL,
|
||||
private_key_pem TEXT NOT NULL,
|
||||
issued_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
expires_at TIMESTAMPTZ NOT NULL,
|
||||
revoked_at TIMESTAMPTZ,
|
||||
serial_number VARCHAR(255) UNIQUE NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_issued_certificates_domain ON issued_certificates(domain);
|
||||
CREATE INDEX IF NOT EXISTS idx_issued_certificates_user_id ON issued_certificates(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_issued_certificates_serial ON issued_certificates(serial_number);
|
||||
CREATE INDEX IF NOT EXISTS idx_issued_certificates_expires_at ON issued_certificates(expires_at);
|
||||
7
dns/migrations/007_cleanup_invalid_records.sql
Normal file
7
dns/migrations/007_cleanup_invalid_records.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
-- Remove invalid record types before applying constraint
|
||||
DELETE FROM dns_records WHERE record_type NOT IN ('A', 'AAAA', 'CNAME', 'TXT');
|
||||
|
||||
-- Now apply the constraint
|
||||
ALTER TABLE dns_records DROP CONSTRAINT IF EXISTS dns_records_record_type_check;
|
||||
ALTER TABLE dns_records ADD CONSTRAINT dns_records_record_type_check
|
||||
CHECK (record_type IN ('A', 'AAAA', 'CNAME', 'TXT'));
|
||||
8
dns/migrations/008_add_ca_storage.sql
Normal file
8
dns/migrations/008_add_ca_storage.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
-- Add table to store CA certificate and key
|
||||
CREATE TABLE IF NOT EXISTS ca_certificates (
|
||||
id SERIAL PRIMARY KEY,
|
||||
ca_cert_pem TEXT NOT NULL,
|
||||
ca_key_pem TEXT NOT NULL,
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
||||
is_active BOOLEAN DEFAULT TRUE
|
||||
);
|
||||
2
dns/migrations/009_add_csr_to_challenges.sql
Normal file
2
dns/migrations/009_add_csr_to_challenges.sql
Normal file
@@ -0,0 +1,2 @@
|
||||
-- Add CSR field to certificate challenges
|
||||
ALTER TABLE certificate_challenges ADD COLUMN IF NOT EXISTS csr_pem TEXT;
|
||||
Reference in New Issue
Block a user