Skip to content

Commit

Permalink
Merge pull request #15 from afterpay/ssl-certificate
Browse files Browse the repository at this point in the history
Use self-signed certificate for running local server as https
  • Loading branch information
Rypac authored Jul 23, 2020
2 parents b341285 + 79850d6 commit d4eacbd
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 12 deletions.
28 changes: 28 additions & 0 deletions config/server.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN CERTIFICATE-----
MIIEzzCCAregAwIBAgIJALI3wYy7GMtnMA0GCSqGSIb3DQEBCwUAMBQxEjAQBgNV
BAMMCWxvY2FsaG9zdDAeFw0yMDA3MTYwNTA1MDRaFw0zMDA3MTQwNTA1MDRaMBQx
EjAQBgNVBAMMCWxvY2FsaG9zdDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
ggIBANC1Vv1Mh7hqG1wyqyAl2P6Fi5EJM4pmb37ziY4huUEJCTU5+HfdnnEPEvHZ
sjXlhmdfB2sjxRQY0P1Hh7Ai4gqY6aHjWofqlCW3v8r4V3r5Tai1lYD+DOg7fTi1
FLFnB8M61ESa6pyAs9NkzIBzmHqESiXcHPdAgsGCHBtSqA7YGYluAYqfiP6oluSf
X3urBBvkr9PJ202jQIzTYM/KWV8emVyi5WudDy1dblXtRL31i7SRudGBkpnzDJ3R
715F+e+dg/bUSzMaaRdKxOT9yUysu5wzGZ8mCB7TEDkTIKIjM+qhJi94rZT7ON7s
VwcjMMmjTMIMWkKzUn2kBE18o3ubgma0yKaztIV8TYPNVE6TU949ZjUzCDWOE7Zm
bPPoiEJ6h8reG+Wdf0DM8+fZ2tz++CLiiQr0NMU2CpkJLGG20msXB+krMpCGIUNK
GvMFd/H9d3PwnA6QyLY6+uLwxYIUpc4Z7Ijg/FITl4oEDRgXNymHo+YLJSBTGMLL
UqOOeUPbawkKaZeSXDNar9hOCYuk8TwD4r53AF6z4OCtPuel5pAte+Jpdu4K1/86
kxkzNKY64/1XtKHV5rx/TLI7xmSU+K3FqtAYDZ28lwuwAZqPINNfuNTP5oiuwr0y
S6Gpp04yGTuKPS5jj+kFC0z3TljjT2mtWXnI9jP7/b582Z/DAgMBAAGjJDAiMCAG
A1UdEQQZMBeCCWxvY2FsaG9zdIcEfwAAAYcECgACAjANBgkqhkiG9w0BAQsFAAOC
AgEApYYg9L7l22BZqAMtw+w+juDDz8iwG5W6g8jLVPWPUSwEBh2YSLx5uTJABwWJ
2IEzASq97dcElCdLCUu5NG+64g2VGvx7T12rUv73X99agEMUQhyk73rLNuWhta9d
DpCzEctNYRjpTDuqzTeCAqhEFX56uZhF+0qwmDR1fZ4QUNZGJVHfg2rcJpzEP18R
EaQ6AZbR+G5m50AO3EGIR2Vl1hlN8Z4QeynE3GTsRhaG+Xs4REWCiLwn94q+YJdp
ogQTv9U/g+ekh06NdP+Rzw35mS8yl8e0UQrdF1J1NNZ0Qb9rlYwfHaXg09I+WMFP
uhsahmfEDFvmGftJf5mLVp2zoX3s987DPe5r/P/4vZLJtlzBHpSpGbwz++za9aO/
vYRkp2LvwXsvbkMv9do7xQw5nnbAe8nH5ty2B5gVXLbCilbIg9k6WKCHcOtgE9nI
6z9Q9xWMdyKI4RrRJzNAias6aicTrNioclJiiM9GZz0PfZq86C/CEHnCPFQkqsJp
p47SS2/2+NeaMJL3zIHLl1wRlaKSsQc4EruiroqwmqXFRphPvYmJzhpQKvafC0yi
9cKiSGQtCBVcHzYHMVvyWNcsF3eVwM/hChIoR4KnWO92TtXkE8DMJNQhU2L3D+MY
GjU8vIIFBXv5NQWN9MJFiquOIiVu2OJ9pGaT9JJGKMop3wc=
-----END CERTIFICATE-----
52 changes: 52 additions & 0 deletions config/server.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
ByM7ri5g2JVIDAy3DWfkfjd8+URwG8YV
-----END PRIVATE KEY-----
33 changes: 21 additions & 12 deletions src/server.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import bodyParser from 'body-parser';
import express from 'express';
import { RequestOptions } from 'https';
import fs from 'fs';
import http from 'http';
import https from 'https';
import path from 'path';
import { Region, configuration as regionConfiguraiton } from './Region';
import { configuration } from './routes/configuration';
import { checkout } from './routes/checkout';
Expand All @@ -19,21 +22,27 @@ if (merchantId === undefined || secretKey === undefined) {
const region = (process.env.AFTERPAY_REGION as Region) ?? Region.US;
const regionConfig = regionConfiguraiton(region);

const defaultOptions: RequestOptions = {
const defaultOptions: https.RequestOptions = {
auth: `${merchantId}:${secretKey}`,
hostname: regionConfig.hostname
};

const port = 3000;
const certificates = {
key: fs.readFileSync(path.join('config', 'server.key')),
cert: fs.readFileSync(path.join('config', 'server.crt'))
};

express()
const app = express()
.use(bodyParser.json())
.get('/configuration', configuration(defaultOptions))
.post('/checkouts', checkout(regionConfig, defaultOptions))
.listen(port, (err) => {
if (err) {
return console.error(err);
}

return console.log(`server is listening on ${port}`);
});
.post('/checkouts', checkout(regionConfig, defaultOptions));

const httpPort = 3000;
http.createServer(app).listen(httpPort, () => {
console.log(`server is listening on http://localhost:${httpPort}`);
});

const httpsPort = 3001;
https.createServer(certificates, app).listen(httpsPort, () => {
console.log(`server is listening on https://localhost:${httpsPort}`);
});

0 comments on commit d4eacbd

Please sign in to comment.