mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 02:15:48 +02:00
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
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
|
|
}
|