1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package system
- import (
- "os"
- "github.com/0xJacky/Nginx-UI/internal/helper"
- "github.com/0xJacky/Nginx-UI/internal/nginx"
- "github.com/uozi-tech/cosy"
- )
- // ValidateSSLCertificates checks if SSL certificate and key files exist and are under Nginx config directory
- // Returns nil if valid, or a CosyError if invalid
- func ValidateSSLCertificates(sslCert, sslKey string) error {
- // Check if both paths are provided
- if sslCert == "" {
- return ErrSSLCertRequired
- }
- if sslKey == "" {
- return ErrSSLKeyRequired
- }
- // Get Nginx configuration directory
- nginxConfPath := nginx.GetConfPath()
- // Check if certificate file exists and is under Nginx config directory
- if !helper.IsUnderDirectory(sslCert, nginxConfPath) {
- return cosy.WrapErrorWithParams(ErrSSLCertNotUnderConf, nginxConfPath)
- }
- // Check if certificate file exists
- if _, err := os.Stat(sslCert); os.IsNotExist(err) {
- return ErrSSLCertNotFound
- }
- // Check if key file is under Nginx config directory
- if !helper.IsUnderDirectory(sslKey, nginxConfPath) {
- return cosy.WrapErrorWithParams(ErrSSLKeyNotUnderConf, nginxConfPath)
- }
- // Check if key file exists
- if _, err := os.Stat(sslKey); os.IsNotExist(err) {
- return ErrSSLKeyNotFound
- }
- return nil
- }
|