Kaynağa Gözat

use a custom https agent for self-signed bypass

Ben Phelps 2 yıl önce
ebeveyn
işleme
ccc37260a0
2 değiştirilmiş dosya ile 8 ekleme ve 8 silme
  1. 0 3
      Dockerfile
  2. 8 5
      src/pages/api/proxy.js

+ 0 - 3
Dockerfile

@@ -26,9 +26,6 @@ COPY --from=builder /app/package.json ./package.json
 COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
 COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
 COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
 COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
 
 
-# Since we run in a local environment, we need to accept self signed certificates
-ENV NODE_TLS_REJECT_UNAUTHORIZED 0
-
 USER nextjs
 USER nextjs
 EXPOSE 3000
 EXPOSE 3000
 ENV PORT 3000
 ENV PORT 3000

+ 8 - 5
src/pages/api/proxy.js

@@ -1,6 +1,4 @@
-function pick(object, keys) {
-  return;
-}
+import https from "https";
 
 
 export default async function handler(req, res) {
 export default async function handler(req, res) {
   const headers = ["X-API-Key", "Content-Type", "Authorization"].reduce((obj, key) => {
   const headers = ["X-API-Key", "Content-Type", "Authorization"].reduce((obj, key) => {
@@ -11,9 +9,14 @@ export default async function handler(req, res) {
   }, {});
   }, {});
 
 
   try {
   try {
+    // this agent allows us to bypass the certificate check
+    // which is required for most self-signed certificates
+    const httpsAgent = new https.Agent({
+      rejectUnauthorized: false,
+    });
+
     const result = await fetch(req.query.url, {
     const result = await fetch(req.query.url, {
-      strictSSL: false,
-      rejectUnhauthorized: false,
+      agent: httpsAgent,
       method: req.method,
       method: req.method,
       headers: headers,
       headers: headers,
       body: req.method == "GET" || req.method == "HEAD" ? null : req.body,
       body: req.method == "GET" || req.method == "HEAD" ? null : req.body,