Skip to content

Instantly share code, notes, and snippets.

@andirkh
Last active May 16, 2019 05:50
Show Gist options
  • Save andirkh/b80e783742f1805de5879c9bf07bbaf8 to your computer and use it in GitHub Desktop.
Save andirkh/b80e783742f1805de5879c9bf07bbaf8 to your computer and use it in GitHub Desktop.
How to simulate https for geolocation testing in local machine

Create file server.crt file along side with server.js. Here's the code:

-----BEGIN CERTIFICATE-----
MIIDljCCAn6gAwIBAgIJAMkPpczHrXbcMA0GCSqGSIb3DQEBCwUAMA0xCzAJBgNV
BAYTAklEMB4XDTE5MDQyNzAyMTQyMVoXDTIwMDkwODAyMTQyMVowgawxCzAJBgNV
BAYTAlVTMRQwEgYDVQQIDAtSYW5kb21TdGF0ZTETMBEGA1UEBwwKUmFuZG9tQ2l0
eTEbMBkGA1UECgwSUmFuZG9tT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZSYW5kb21P
cmdhbml6YXRpb25Vbml0MSAwHgYJKoZIhvcNAQkBFhFoZWxsb0BleGFtcGxlLmNv
bTESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA8f+KjOlfnf8pYejo6PP7zEeAFDkz2A53UolVsqoOLHnl8vUU3m9FTfQx
2lH2EiRwyTl8+b2Ls2h+5U6t/JWs+kQpJITaN4g3KSx5BuCMCFahA1mP4NnLnEex
zAvPsmglXBfN7H3WotbpnNjCAzIYI/xO8Rtybf1Gqebh0qNfb4ZZsZbqWDllhp+g
Z461HzmGuQCIGAAYTE1pAS1GAX4cT9gjcAI5kkMpT5al04crJPPLXdDk+mzTkiI6
GXCvAnGMbPJJVF43pgacK0Xi8IWVjkUzuSyxKlY6MlRaQwvTOyUJg47d/di7A3xw
5ZH6N9JLk6CiiRikNb6aN1r2qewlywIDAQABo1kwVzAnBgNVHSMEIDAeoRGkDzAN
MQswCQYDVQQGEwJJRIIJAMop6dVSltkcMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgTw
MBQGA1UdEQQNMAuCCWxvY2FsaG9zdDANBgkqhkiG9w0BAQsFAAOCAQEAOoXpgp+B
DYmDlEmfugbfd6LA/UqCs4vfVn/vgCQ35R1EsDTxXKof0TZt8KJBGcWGXr8LNWS8
OO5fw8GBUfxsYx+KG3mUfrJbWbb+1sLt2DJdA6F8vTOHVpG7tkYC/rhnAwvlILFM
D4ptDPdQqI/7PWQ8MkDa55mS/zwdtCM5jGVOiL4MWJ+RF2OldtLDbPy8xmZf+DLx
cTUfoON/2tHps59GrHBYsTh2w6g0MMziOgbZVL88rUUfJD3ziEWGbU5tBcLMJCjW
B9uAN6I+o5IQ1SoDA1lt1a/sK5yah6lYnA9/yXUWoU6OEVDlMcnK7/XpM1YpxxVX
C3zpEzO7k9G57g==
-----END CERTIFICATE-----

also create a server.key along side server.js and server.crt. Here's the code:

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDx/4qM6V+d/ylh
6Ojo8/vMR4AUOTPYDndSiVWyqg4seeXy9RTeb0VN9DHaUfYSJHDJOXz5vYuzaH7l
Tq38laz6RCkkhNo3iDcpLHkG4IwIVqEDWY/g2cucR7HMC8+yaCVcF83sfdai1umc
2MIDMhgj/E7xG3Jt/Uap5uHSo19vhlmxlupYOWWGn6BnjrUfOYa5AIgYABhMTWkB
LUYBfhxP2CNwAjmSQylPlqXThysk88td0OT6bNOSIjoZcK8CcYxs8klUXjemBpwr
ReLwhZWORTO5LLEqVjoyVFpDC9M7JQmDjt392LsDfHDlkfo30kuToKKJGKQ1vpo3
Wvap7CXLAgMBAAECggEBAL9UQc+tB6scPTSq99KObEsTUMEshL/SmCaKbFYIu5IQ
gmy3tlsy8EF0yyGIYZvwcbe2mwe9A8HB4Woc7dRg5lUsJLc5zmnPaYVFIx7709sX
2s+SNP4aVC/oQztHL1wnmToZm/bZeyRd9G/MtH/gUFPLPQLFp5Asinz0DSEDiAXc
UmO8fWuCo+y7SJFe0i+Qv7i31Hjtkok3RYmwQRg8BVDhtHBDu+zF8LlsVks4fQwR
8C/ng6mILdKZcU84aCQ+Py62lWks0E8H1YKb3oFAa3MRw329k5VhbnC5RXfwJnrb
1xgt7Umo9Jq4s8s1mXC91NggiDcPWtdMDNq237B6VDkCgYEA+PV0+C7s+vECjxz3
f38nvfyeEHZITpmIMKY14xK6S7w1J0BbygCq8Zgokn8Kn75FAlnjqw1jVId79U3u
dp2bgp1OHSkCC9c4JumRWhRKqHNZytxs/REEb9ed9EZO7NZA6Ub3iOXknsqHToNk
xwBjpEK/YivvUtY6fHoHg8BE4HcCgYEA+Nev7gBUjm/Z4W2S0cXSQr43A2ixUr5E
q6QI4yeyC6IBBNyw1b+zklOKHrw4t8kBvM7JVaXQO3lsLpGQ6r0I4++teujm9ir9
Djyk5FX87/GQs414hFe+nTsHjXjQfheHXYkIaCbWquZ6DNj+Dt3P93z2pxPCnfHx
WnEMbg8q7k0CgYEAg3qGGqgVqXVs543hu6i4oWJvS7xb9X6p6R9uaAy07FhqLd+U
Wjs+DDdSfgOv5atDoLk+PlDku3iN44ATxvr3bOSMo2PL29r+obZKeCstPockzbjZ
qlC5aiOSHLag6f1A7LH4+oiG08Gb8b/8kghHlzFVB5CyZKoU2zZLD66T8YMCgYAr
yWg/rPc0CSKBtFI9b13MOMRdaTKqqKhUu4yEzBtcSKl9PYgwVIc4nFKVjfE9BbW0
j36F/6Ngk8EhgKPLanACC86u7gSWFIJq2uj49NiJMCySK7alMvtrl1OA5V1qkqFT
KCW+jfcAI4YedKBf5VAO8IJGbAe22zfo/jN9ulWHkQKBgCeA1cOsYU1taGGxsl9K
wdGiEm7BvFPw+wR8FVEph+uGcqzChe8s9h3NsRfAKBhCFlCEZUHua16Ntk1+mF4x
ulY2vX6WhQRvWnL5h0RkP61FiZMTm7Bh3hPcv+E3jjxelcbX9WUznWiicC3loE0U
QyNYpqS7HB7feaklP0TSA3w8
-----END PRIVATE KEY-----

put these lines inside server.js

const fs = require('fs');
const path = require('path');
const https = require('https');

const certOptions = {
  key: fs.readFileSync(path.resolve('./server.key')),
  cert: fs.readFileSync(path.resolve('./server.crt')),
};

change the server.listen to these lines :

if (dev) {
  https.createServer(certOptions, server).listen(443);
} else {
  server.listen(3000, err => {
  if (err) throw err;
      console.log('> Ready on http://localhost:3000');
  });
}
// server.listen(port, err => {
//   if (err) throw err;
//   console.log(`> Ready on http://localhost:${port}`);
// });
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment