Linux

Ubuntu 作業系統上的安全埠 8000

  • April 15, 2020

我只是按照以下教程進行操作:

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

# Only valid for 90 days, test the renewal process with
certbot renew --dry-run

這確實有效,但僅適用於在主域上執行的客戶端。但我也有一個在埠 8000 上執行的 API。當我訪問 mydomain.com:8000 時,它確實將我重定向到 https,但它顯示以下錯誤: 在此處輸入圖像描述

基本上它永遠載入。

我已經在我的防火牆中允許了 https。我的意思是基本域可以正常工作,只是埠 8000 不能與 https 一起使用,它可以與 http 一起使用。

server {

       # SSL configuration
       #
       # listen 443 ssl default_server;
       # listen [::]:443 ssl default_server;
       #
       # Note: You should disable gzip for SSL traffic.
       # See: https://bugs.debian.org/773332
       #
       # Read up on ssl_ciphers to ensure a secure configuration.
       # See: https://bugs.debian.org/765782
       #
       # Self signed certs generated by the ssl-cert package
       # Don't use them in a production server!
       #
       # include snippets/snakeoil.conf;

       root /var/www/html/dexhub/client/build;

       # Add index.php to the list if you are using PHP
       index index.html index.htm index.nginx-debian.html;
       server_name www.iprofitmizer.com iprofitmizer.com; # managed by Certbot

       error_page 404 /;

       location / {
               # First attempt to serve request as file, then
               # as directory, then fall back to displaying a 404.
               try_files $uri $uri/ =404;
       }
       location /api {
         proxy_pass http://localhost:8000;
       }

訪問你的 nodejs API 的最簡單方法是通過像這樣的代理來定義它

location /api {
   proxy_pass http://localhost:8000;
}

在您的 nginx 虛擬主機配置中(例如/etc/nginx/sites-enabled/my-site.conf)。然後,您應該能夠通過https://iprofitmizer.com/api訪問您的 API, 並且 certbot 自動更新也應該可以工作。

否則,您必須將 TLS 支持集成到您的 nodejs 應用程序中。

引用自:https://serverfault.com/questions/1012430