Files
leonwww/dns/migrations/005_add_certificate_challenges.sql

33 lines
1.4 KiB
MySQL
Raw Normal View History

2025-08-22 17:31:54 +03:00
-- Add certificate challenges table for CA functionality
CREATE TABLE IF NOT EXISTS certificate_challenges (
2025-11-08 15:06:30 +08:00
id INT AUTO_INCREMENT PRIMARY KEY,
2025-08-22 17:31:54 +03:00
token VARCHAR(255) UNIQUE NOT NULL,
domain VARCHAR(255) NOT NULL,
2025-11-08 15:06:30 +08:00
challenge_type VARCHAR(20) NOT NULL,
2025-08-22 17:31:54 +03:00
verification_data VARCHAR(500) NOT NULL,
2025-11-08 15:06:30 +08:00
status VARCHAR(20) DEFAULT 'pending',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
2025-11-08 15:48:53 +08:00
expires_at TIMESTAMP NOT NULL
2025-08-22 17:31:54 +03:00
);
2025-11-08 15:06:30 +08:00
CREATE INDEX idx_certificate_challenges_token ON certificate_challenges(token);
CREATE INDEX idx_certificate_challenges_domain ON certificate_challenges(domain);
CREATE INDEX idx_certificate_challenges_expires_at ON certificate_challenges(expires_at);
2025-08-22 17:31:54 +03:00
-- Add table to store issued certificates
CREATE TABLE IF NOT EXISTS issued_certificates (
2025-11-08 15:48:53 +08:00
id INT AUTO_INCREMENT PRIMARY KEY,
2025-08-22 17:31:54 +03:00
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,
2025-11-08 15:06:30 +08:00
issued_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
2025-11-08 15:48:53 +08:00
expires_at TIMESTAMP NOT NULL,
revoked_at TIMESTAMP,
2025-08-22 17:31:54 +03:00
serial_number VARCHAR(255) UNIQUE NOT NULL
);
2025-11-08 15:06:30 +08:00
CREATE INDEX idx_issued_certificates_domain ON issued_certificates(domain);
CREATE INDEX idx_issued_certificates_user_id ON issued_certificates(user_id);
CREATE INDEX idx_issued_certificates_serial ON issued_certificates(serial_number);
CREATE INDEX idx_issued_certificates_expires_at ON issued_certificates(expires_at);