diff options
| -rw-r--r-- | .gitignore | 3 | ||||
| -rw-r--r-- | certs/certs.go | 6 | ||||
| -rw-r--r-- | certs/server.crt | 21 | ||||
| -rw-r--r-- | internal/client/gateway/gateway.go | 7 | ||||
| -rw-r--r-- | internal/server/server.go | 17 |
5 files changed, 39 insertions, 15 deletions
@@ -1,5 +1,4 @@ -internal/server/certs/ -*.crt +*.key *.log *.db *.db-shm diff --git a/certs/certs.go b/certs/certs.go new file mode 100644 index 0000000..7fa8f54 --- /dev/null +++ b/certs/certs.go @@ -0,0 +1,6 @@ +package certs + +import _ "embed" + +//go:embed server.crt +var CertPEM []byte diff --git a/certs/server.crt b/certs/server.crt new file mode 100644 index 0000000..caf2384 --- /dev/null +++ b/certs/server.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIUZyvzq7LOxKqTttTRjChoJWOO4pYwDQYJKoZIhvcNAQEL +BQAwOjEhMB8GCSqGSIb3DQEJARYSa3lyZW4yMjNAcHJvdG9uLm1lMRUwEwYDVQQD +DAxreXJlbjIyMy5kZXYwHhcNMjQxMDA5MjE1NzQzWhcNMjUxMDA5MjE1NzQzWjA6 +MSEwHwYJKoZIhvcNAQkBFhJreXJlbjIyM0Bwcm90b24ubWUxFTATBgNVBAMMDGt5 +cmVuMjIzLmRldjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK7hd+zT +kqrn/8EhLEO0uMKKHgfoyczYWTlA9uPFADOsjdzXRLuR/Y3rK0PBE4u55xcjYZSf +mzJmVHuv1rEFOt634YOoE2UwJd9V2M0p+cD716XIEDNPfVCUe77FoZoYaH1h8QF5 +Mrx2eDH5JZt690F05O39zYzbb7+RlChWlt1kBcmLEZ1GKJeXznbL6lLMh20deYX9 +7oemqYMqP9DFbFeHkubeZ20yQvKW9cOWae9M+IhE9dAa8fm5WdfiDoTdAHfbIawx +r1OB4YqfXlXler9wAHfHWeCS0KgZCTdghF1h6wtYlwyQZcUuv+dHN7SP7zVo8pOD +b7NUqjFAMGlNgf0CAwEAAaNrMGkwCQYDVR0TBAIwADALBgNVHQ8EBAMCBaAwMAYD +VR0RBCkwJ4IJbG9jYWxob3N0ggsqLmxvY2FsaG9zdIINZWtvLmxvY2FsaG9zdDAd +BgNVHQ4EFgQUf32SXO976zgO0K/wlgWdyT3EPzcwDQYJKoZIhvcNAQELBQADggEB +AHVMGCkaZv5eIOQwevfrsEJQo3dNG34om8wBVGS5iQyho0VJZpKZSiQ16yv4x2kc +UICfVEFcfO/7/hRlA5yLWE/wpeqCgTSgtQ74gvc8D6H26wCznSPj9MIRWxYhSmPM +YO+7UKqyvFoaKiW4OkqJvCRzrpwr/lbXcGpD47UqT5gRvjJ91ULCHIUt8qDUS6+8 +mEGJAe/xFkiJ6zT0bThlqMaCA4v5g9tHGXzooIZ+YSgTvlWhAM6mVwt34l2rDSOw +4YNGUJXKCoGpy8U0NteIOOs6HhaslJpKe1mSSxmMQcgBcaf6yBT08mYfQPSsaeOk +OSoncuVBnT64liAtShpsgTc= +-----END CERTIFICATE----- diff --git a/internal/client/gateway/gateway.go b/internal/client/gateway/gateway.go index a8f4241..9709968 100644 --- a/internal/client/gateway/gateway.go +++ b/internal/client/gateway/gateway.go @@ -5,7 +5,6 @@ import ( "crypto/ed25519" "crypto/tls" "crypto/x509" - _ "embed" "encoding/binary" "errors" "log" @@ -15,15 +14,13 @@ import ( tea "github.com/charmbracelet/bubbletea" + "github.com/kyren223/eko/certs" "github.com/kyren223/eko/internal/client/ui" "github.com/kyren223/eko/internal/packet" "github.com/kyren223/eko/pkg/assert" "github.com/kyren223/eko/pkg/snowflake" ) -//go:embed server.crt -var certPEM []byte - var ( tlsConfig *tls.Config @@ -42,7 +39,7 @@ type ( func init() { certPool := x509.NewCertPool() - if !certPool.AppendCertsFromPEM(certPEM) { + if !certPool.AppendCertsFromPEM(certs.CertPEM) { log.Fatalln("failed to append server certificate") } diff --git a/internal/server/server.go b/internal/server/server.go index f510821..253cef3 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -5,17 +5,18 @@ import ( "crypto/ed25519" "crypto/rand" "crypto/tls" - _ "embed" "encoding/binary" "errors" "fmt" "io" "log" "net" + "os" "strconv" "sync" "time" + "github.com/kyren223/eko/certs" "github.com/kyren223/eko/internal/packet" "github.com/kyren223/eko/internal/server/api" "github.com/kyren223/eko/internal/server/session" @@ -23,19 +24,19 @@ import ( "github.com/kyren223/eko/pkg/snowflake" ) -//go:embed certs/server.crt -var certPEM []byte - -//go:embed certs/server.key -var keyPEM []byte - var ( nodeId int64 = 0 tlsConfig *tls.Config ) func init() { - cert, err := tls.X509KeyPair(certPEM, keyPEM) + path := "certs/server.key" + keyPEM, err := os.ReadFile(path) + if err != nil { + log.Fatalln("failed to read certificate key from", path) + } + + cert, err := tls.X509KeyPair(certs.CertPEM, keyPEM) if err != nil { log.Fatalln("error loading certificate:", err) } |
