DEV Community

Cover image for Run your Sveltekit (or any vite) localhost server with HTTPS
Abdullah Bashir
Abdullah Bashir

Posted on

Run your Sveltekit (or any vite) localhost server with HTTPS

A simple no-nonsense guide to running your vite-powered localhost server with HTTPS.

Step one - Install [MkCert]

(https://github.com/FiloSottile/mkcert)
MkCert is a simple zero-config tool to make locally trusted development certificates with any names you'd like.

On Windows:

  • Using Chocolatey:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Enter fullscreen mode Exit fullscreen mode

If you're using powershell, run this in addition:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
Enter fullscreen mode Exit fullscreen mode

Run choco in your terminal to confirm the installation. You should see something like this:

Choco Version Check
Run this in your terminal to scaffold a new sveltekit project

On Mac:
With Homebrew:

brew install mkcert
brew install nss # if you use Firefox
Enter fullscreen mode Exit fullscreen mode

With MacPorts

sudo port selfupdate
sudo port install mkcert
sudo port install nss # if you use Firefox
Enter fullscreen mode Exit fullscreen mode

On Linux
First install certutil:

sudo apt install libnss3-tools
    -or-
sudo yum install nss-tools
    -or-
sudo pacman -S nss
    -or-
sudo zypper install mozilla-nss-tools
Enter fullscreen mode Exit fullscreen mode

Then install Homebrew on Linux:

test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bashrc
Enter fullscreen mode Exit fullscreen mode

Install mkcert using Homebrew on Linux

brew install mkcert
Enter fullscreen mode Exit fullscreen mode

For Arch Linux users, mkcert is available on the official Arch Linux repository:

sudo pacman -Syu mkcert
Enter fullscreen mode Exit fullscreen mode

Step two - Install Local Cerificate Authority

Run mkcert -install. You should see something like this.

> mkcert -install
Created a new local CA 💥
The local CA is now installed in the system trust store! ⚡️
The local CA is now installed in the Firefox trust store (requires browser restart)! 🦊
Enter fullscreen mode Exit fullscreen mode

Step 3 - Create your certificate with mkcert:
You can move to your project directory and remove 'your_project' from the commands below:

mkdir your_project/cert
cd your_project/cert
mkcert -key-file key.pem -cert-file cert.pem localhost
Enter fullscreen mode Exit fullscreen mode

Step 4 - Update your vite config:

Include your cert files into your vite config:

import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
import fs from 'fs';

export default defineConfig({
    plugins: [sveltekit()],
// Added Config
    server: {
        https: {
            key: fs.readFileSync(`${__dirname}/../cert/key.pem`),
            cert: fs.readFileSync(`${__dirname}/../cert/cert.pem`)
        },
        proxy: {}
    }
// Added Config End
});
Enter fullscreen mode Exit fullscreen mode

Step 5 - Run dev server
Run npm run dev or pnpn run dev or whatever you deem fit and voila:

Secure Connection

Secure Connection

Happy Hacking!

PS: Relevant docs
PS2: How to change your sveltekit (or any vite-powered) dev server port.

Top comments (0)