如何在本地主机上的React应用程序中配置HTTPS

如果您使用create-react-app并且您正在计算机上本地运行它,默认情况下,它是使用HTTP协议提供的。

生产中运行的所有应用程序都将使用HTTPS(HTTP的安全版本)进行服务。

在大多数情况下,几乎可以毫不费力地获得HTTPS,尤其是如果您使用Netlify或Vercel之类的现代平台来服务您的应用程序时。

但是在本地..我们要复杂一点。

让我们看看如何做到!

如您所知,create-react-app应用程序正在使用运行npm run start,或简单地npm start,因为在package.json文件的scripts部分,我们有这行:

"start": "react-scripts start"

change that to:

"start": "HTTPS=true react-scripts start"

This sets the HTTPS environment variable to the true value.

That’s not enough, though.

Now we also need to generate a local certificate. This step will work fine for any app, not just create-react-app apps, but I will include it in this post, as a reference.

Note: I ran these commands on macOS. Linux should work in the same way. I don’t guarantee for Windows.

In the project root folder, run:

openssl req -x509 -newkey rsa:2048 -keyout keytmp.pem -out cert.pem -days 365

Now run:

openssl rsa -in keytmp.pem -out key.pem

You should now have the files cert.pem and key.pem in the folder.

Now change the start script in the package.json file to:

"start": "export HTTPS=true&&SSL_CRT_FILE=cert.pem&&SSL_KEY_FILE=key.pem react-scripts start",

If you ran npm run start, and access https://localhost:3000 (or the port your app uses, if different - in my case it’s 3008), you should see this warning message:

To fix it on macOS, follow the instructions of my tutorial how to install a local certificate in macOS.

Once you do, you will be able to see the app without problems, served using SSL:

Download my free React Handbook


More react tutorials: