Skip to main content

HTTPS with TLS Example

Github StackBlitz

This project demonstrates how to set up an HTTPS server with TLS in a Go application using the Fiber framework.

Prerequisites

Ensure you have the following installed:

  • Golang
  • Fiber package
  • TLS certificates (self-signed or from a trusted CA)

Setup

  1. Clone the repository:

    git clone https://github.com/gofiber/recipes.git
    cd recipes/https-tls
  2. Install dependencies:

    go get
  3. Generate a self-signed certificate and key:

    mkdir -p certs
    openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout certs/ssl.key -out certs/ssl.cert \
    -subj "/CN=localhost"

Running the Application

  1. Start the application:

    go run main.go
  2. Access the application at https://localhost:443.

Example

Here is an example of how to set up an HTTPS server with TLS in a Fiber application:

package main

import (
"crypto/tls"
"log"

"github.com/gofiber/fiber/v3"
)

func main() {
app := fiber.New()

app.Get("/", func(c fiber.Ctx) error {
return c.SendString(c.Protocol()) // => https
})

// Create tls certificate
cer, err := tls.LoadX509KeyPair("certs/ssl.cert", "certs/ssl.key")
if err != nil {
log.Fatal(err)
}

config := &tls.Config{Certificates: []tls.Certificate{cer}}

// Create custom listener
ln, err := tls.Listen("tcp", ":443", config)
if err != nil {
log.Fatal(err)
}

// Start server with https/ssl enabled on http://localhost:443
log.Fatal(app.Listener(ln))
}

References