為什麼用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:yamlserver: port: 443 ssl: enabled: true key-store: classpath:keystore.jks key-store-password: password key-alias: mykey key-password: password
propertiesserver.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。例如:
-
配置應用伺服器:
- 如果您的應用執行在像 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 以使配置生效:
sudo nginx -t # 檢查配置檔案是否有語法錯誤
sudo systemctl reload nginx # 重新載入配置檔案
或者:
sudo nginx -s reload # 另一種重新載入配置的方式