How to Get SSL/HTTPS for Localhost using Windows


# Install Local Cert with mkcert for Windows

**NOTE**:Install Localhost Cert on Windows and website, mkcert is a simple tool for making locally-trusted development certificates. It requires no configuration.

## Run Powershell

**NOTE**:Check if Policies restrictions:

```

PS C:\cert> Get-ExecutionPolicy

```

## Install Choco Package to install Mkcert

```

PS C:\cert> 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'))

```

## Install Choco output

**OutPut**:Forcing web requests to allow TLS v1.2 (Required for requests to Chocolatey.org)

Getting latest version of the Chocolatey package for download.

Not using proxy.

Getting Chocolatey from https://community.chocolatey.org/api/v2/package/chocolatey/2.2.2.

Downloading https://community.chocolatey.org/api/v2/package/chocolatey/2.2.2 to C:\Users\xxxx\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip

Not using proxy.

Extracting C:\Users\xxxx\AppData\Local\Temp\chocolatey\chocoInstall\chocolatey.zip to C:\Users\xxxx\AppData\Local\Temp\chocolatey\chocoInstall

Installing Chocolatey on the local machine

Creating ChocolateyInstall as an environment variable (targeting 'Machine')

  Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'

WARNING: It's very likely you will need to close and reopen your shell

  before you can use choco.

Restricting write permissions to Administrators

We are setting up the Chocolatey package repository.

The packages themselves go to 'C:\ProgramData\chocolatey\lib'

  (i.e. C:\ProgramData\chocolatey\lib\yourPackageName).

A shim file for the command line goes to 'C:\ProgramData\chocolatey\bin'

  and points to an executable in 'C:\ProgramData\chocolatey\lib\yourPackageName'.

Creating Chocolatey folders if they do not already exist.

chocolatey.nupkg file not installed in lib.

 Attempting to locate it from bootstrapper.

PATH environment variable does not have C:\ProgramData\chocolatey\bin in it. Adding...

WARNING: Not setting tab completion: Profile file does not exist at 'C:\Users\HugoSilva\OneDrive - Alternus Energy

Office365\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.

Chocolatey (choco.exe) is now ready.

You can call choco from anywhere, command line or powershell by typing choco.

Run choco /? for a list of functions.

You may need to shut down and restart powershell and/or consoles

 first prior to using choco.

Ensuring Chocolatey commands are on the path

Ensuring chocolatey.nupkg is in the lib folder


## Install MKCERT

```

PS C:\cert> choco install mkcert

```

## Install MKCERt output

**OutPut**:Created a new local CA 💥

Note: the local CA is not installed in the system trust store.

Run "mkcert -install" for certificates to be trusted automatically ⚠️

Created a new certificate valid for the following names 📜

 - "install"

The certificate is at "./install.pem" and the key at "./install-key.pem" ✅

It will expire on 6 March 2026 🗓


## Create Cert

```

PS C:\cert> mkcert hscert.com "*.hscert.com" hscert.test localhost 127.0.0.1 ::1

```

## Creation Cert Output

**OutPut**:Note: the local CA is not installed in the system trust store.

Run "mkcert -install" for certificates to be trusted automatically ⚠️

Created a new certificate valid for the following names 📜

 - "hscert.com"

 - "*.hscert.com"

 - "hscert.test"

 - "localhost"

 - "127.0.0.1"

 - "::1"

Reminder: X.509 wildcards only go one level deep, so this won't match a.b.hscert.com ℹ️

The certificate is at "./hscert.com+5.pem" and the key at "./hscert.com+5-key.pem" ✅

It will expire on 6 March 2026 🗓


## Install Cert on Machine

```

PS C:\cert> mkcert -install

```

## Install Cert Output

**Warning**: The local CA is now installed in the system trust store! ⚡️


## Install NODEJS

```

PS C:\cert> winget install nodejs

```

**Output**: The `msstore` source requires that you view the following agreements before using.

Terms of Transaction: https://aka.ms/microsoft-store-terms-of-transaction

The source requires the current machine's 2-letter geographic region to be sent to the backend service to function properly (ex. "US").

Do you agree to all the source agreements terms?

[Y] Yes  [N] No: Y

Found Node.js [OpenJS.NodeJS] Version 21.3.0

This application is licensed to you by its owner.

Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.

Downloading https://nodejs.org/dist/v21.3.0/node-v21.3.0-x64.msi

  ██████████████████████████████  25.8 MB / 25.8 MB

Successfully verified installer hash

Starting package install...

Successfully installed


## Install Nodejs via Choco

```

PS C:\cert> choco install nodejs

```

**Output**: Chocolatey v2.2.2

Installing the following packages:

nodejs

By installing, you accept licenses for the packages.

Progress: Downloading nodejs.install 21.4.0... 100%

nodejs.install v21.4.0

nodejs.install package files install completed. Performing other installation steps.

The package nodejs.install wants to run 'chocolateyInstall.ps1'.

Note: If you don't run this script, the installation will fail.

Note: To confirm automatically next time, use '-y' or consider:

choco feature enable -n allowGlobalConfirmation

Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): A

Installing 64 bit version

Installing nodejs.install...

nodejs.install has been installed.

  nodejs.install may be able to be automatically uninstalled.

 The install of nodejs.install was successful.

  Software installed as 'msi', install location is likely default.

Progress: Downloading nodejs 21.4.0... 100%

nodejs v21.4.0 [Approved]

nodejs package files install completed. Performing other installation steps.

 The install of nodejs was successful.

  Software installed to 'C:\ProgramData\chocolatey\lib\nodejs'

Chocolatey installed 2/2 packages.

 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).


## Install Nodejs Express

```

PS C:\cert> npm install express

```

added 62 packages, and audited 64 packages in 3s

11 packages are looking for funding

  run `npm fund` for details

found 0 vulnerabilities


## Create index.js

```

const fs = require('fs')
const key = fs.readFileSync('./ca/hscert.com+5-key.pem')
const cert = fs.readFileSync('./ca/hscert.com+5.pem')

const express = require('express')
const app = express()

app.get('/', (req, res, next) => {
  res.status(200).send('Welcome to Cert Page!')
})

const https = require('https')
const server = https.createServer({ key, cert }, app)

const port = 3000
server.listen(port, () => {
  console.log(`Server is listening on https://localhost:${port}`)
})

```

## Run Node Server

```

PS C:\cert> node index.js

```

Server is listening on https://localhost:3000

## DONE

GITHUB: https://github.com/kainite/InstallLocalCert/



Comments