为什么用postman请求本地的接口 前面是http不是https http://localhost:18080/api/v3/process/selectSubTableData
在开发和测试环境中,使用 HTTP 而不是 HTTPS 来请求本地接口是非常常见的做法,原因包括:
-
简化配置:在本地开发时,通常不需要设置 HTTPS,这样可以避免配置 SSL/TLS 证书的复杂性。
-
性能:HTTPS 需要额外的加密和解密过程,这可能会稍微影响性能。在开发和测试阶段,性能不是主要关注点,因此通常使用 HTTP。
-
工具支持:像 Postman 这样的工具默认使用 HTTP 来请求接口,因为它们主要用于开发和测试,而不是生产环境。
-
安全性要求较低:在本地环境中,数据传输的安全性要求通常较低,因为数据不会在公共网络上传输。
-
开发方便:使用 HTTP 可以让开发者更容易地进行接口调试和测试,因为大多数开发工具和浏览器都原生支持 HTTP。
-
成本:获取和维护有效的 SSL/TLS 证书需要一定的成本,而在开发和测试环境中,这些成本通常是不必要的。
-
兼容性:某些开发环境和工具可能不支持 HTTPS,或者配置起来比较麻烦。
在您提供的例子中,http://localhost:18080/api/v3/process/selectSubTableData
使用 HTTP 协议和 localhost
作为主机名,这表明这是一个本地接口调用,通常用于开发或测试目的。端口 18080
是该服务在本地机器上监听的端口号。
当您的应用准备部署到生产环境时,通常会使用 HTTPS 来确保数据传输的安全性,防止数据在传输过程中被窃听或篡改。在生产环境中,您需要为域名获取有效的 SSL/TLS 证书,并在服务器上配置它们。
如果是生产环境, 在哪里配置https, yml文件么 还是在哪里配置
在生产环境中,配置 HTTPS 通常涉及以下几个步骤:
-
获取 SSL/TLS 证书:
- 从证书颁发机构(CA)购买证书,或者使用 Let's Encrypt 等免费服务获取免费证书。
- 证书通常包括一个私钥文件、一个证书文件(公钥),以及可能的中间证书。
-
配置 Web 服务器:
- 对于 Nginx,可以在 Nginx 配置文件中配置 SSL/TLS。例如:
nginx
server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; ssl_trusted_certificate /path/to/chain.pem; location / { # Proxy settings or static files } }
- 对于 Apache,可以在 Apache 的配置文件中设置 SSL/TLS。例如:
apache
<VirtualHost *:443> ServerName example.com DocumentRoot /var/www/html SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem SSLCertificateChainFile /path/to/chain.pem # Other directives... </VirtualHost>
- 如果您的应用是自行托管的,并且直接处理 HTTPS,那么您需要在应用的配置中指定证书。例如,在 Spring Boot 应用中,您可以在
application.yml
或application.properties
文件中配置 SSL/TLS: yaml
或者使用 Java 系统属性: propertiesserver: port: 443 ssl: enabled: true key-store: classpath:keystore.jks key-store-password: password key-alias: mykey key-password: password
server.port=443 server.ssl.enabled=true server.ssl.key-store=classpath:keystore.jks server.ssl.key-store-password=password server.ssl.key-alias=mykey server.ssl.key-password=password
- 对于其他语言和框架,通常有类似的配置方法。
- 对于 Nginx,可以在 Nginx 配置文件中配置 SSL/TLS。例如:
nginx
-
配置应用服务器:
- 如果您的应用运行在像 Tomcat、Jetty 或 Undertow 这样的应用服务器上,您需要在服务器的配置文件或管理界面中配置 SSL/TLS。
-
更新 DNS 和 Firewall 规则:
- 确保 DNS 设置正确,将您的域名指向应用服务器的公网 IP。
- 更新防火墙规则,允许 443 端口的流量。
-
测试 HTTPS 配置:
- 在配置完成后,使用浏览器或
curl
命令测试 HTTPS 连接是否正常工作。
- 在配置完成后,使用浏览器或
请注意,配置 HTTPS 需要一定的网络安全知识,确保正确配置证书和加密设置,以保护数据传输的安全。
listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; ssl_trusted_certificate /path/to/chain.pem; location / { # Proxy settings or static files } 解释一下
这段配置是 Nginx 服务器的配置片段,用于设置一个 HTTPS 服务器,监听 443 端口,这是 HTTPS 服务的标准端口。下面是每个指令的详细解释:
-
listen 443 ssl;
- 这行配置告诉 Nginx 监听 443 端口,并且启用 SSL 加密。
ssl
参数指示 Nginx 在这个监听端口上启用 SSL。
- 这行配置告诉 Nginx 监听 443 端口,并且启用 SSL 加密。
-
server_name example.com;
- 这行配置设置了服务器块的域名,即
server_name
指令定义了这个虚拟主机的域名。在这里,它指定了域名example.com
。当访问这个域名时,Nginx 会使用这个服务器块的配置来处理请求。
- 这行配置设置了服务器块的域名,即
-
ssl_certificate /path/to/cert.pem;
- 这行配置指定了 SSL 证书文件的位置。
cert.pem
是 SSL 证书文件,包含了网站的公钥。这个文件应该位于指定的路径中。
- 这行配置指定了 SSL 证书文件的位置。
-
ssl_certificate_key /path/to/key.pem;
- 这行配置指定了 SSL 私钥文件的位置。
key.pem
是 SSL 私钥文件,它必须保密,不应该泄露给未授权的人员。
- 这行配置指定了 SSL 私钥文件的位置。
-
ssl_trusted_certificate /path/to/chain.pem;
- 这行配置指定了证书链文件的位置。
chain.pem
文件包含了证书颁发机构(CA)的证书,用来建立证书的信任链。如果证书是自签名的或者只有一个证书文件,可能不需要这个指令。
- 这行配置指定了证书链文件的位置。
-
location / { ... }
- 这是一个
location
块,定义了当请求到达服务器时如何处理请求。在这个例子中,它匹配根 URL(/
),即网站的首页。在这个块中,你可以定义反向代理设置(将请求转发到后端服务器),或者提供静态文件服务。例如,你可以配置 Nginx 将请求转发到一个运行在特定端口上的 Spring Boot 应用。
- 这是一个
请注意,/path/to/cert.pem
、/path/to/key.pem
和 /path/to/chain.pem
是证书文件的路径占位符,你需要将它们替换为实际的证书文件路径。这些文件应该提前准备好,并且放置在服务器上安全的位置。
在配置 HTTPS 时,确保你的证书和私钥是有效的,并且与你的域名匹配。配置完成后,你需要重新加载或重启 Nginx 以使配置生效:
shsudo nginx -t # 检查配置文件是否有语法错误
sudo systemctl reload nginx # 重新加载配置文件
或者:
sudo nginx -s reload # 另一种重新加载配置的方式
标签:ssl,证书,配置,nginx,key,path,pem
From: https://www.cnblogs.com/ZhangZiXue/p/18492243