Ubuntu安裝OpenSSL詳細教程及配置指南

在Linux系統中,OpenSSL是一種用於加密和解密數據的開源軟件包。它能夠支持多種加密算法和密鑰長度,廣泛地被應用於SSL/TLS協議、數字證書、VPN等各個領域。下面,我們就來一步步介紹Ubuntu安裝OpenSSL的詳細過程和配置指南。

一、安裝OpenSSL

1、首先,我們需要安裝OpenSSL。在Ubuntu 16.04及以上版本中,我們可以通過apt包管理器來進行安裝:

sudo apt update
sudo apt install openssl

2、安裝完成之後,我們可以通過以下命令來檢查OpenSSL的版本信息:

openssl version

這將輸出類似於以下的版本信息:

OpenSSL 1.0.2g  1 Mar 2016

我們需要檢查版本是否為最新版本,並進行相應的更新。

二、生成自簽名證書

如果我們在本地或局域網內使用OpenSSL進行加密通信,可以使用自簽名數字證書,來驗證通信的安全性。下面,我們就來生成一個自簽名證書。

1、首先,建立一個空文件夾,作為證書存放的目錄:

sudo mkdir /etc/nginx/ssl
cd /etc/nginx/ssl

2、生成秘鑰:

sudo openssl genrsa -des3 -out server.key 2048

3、生成證書請求:

sudo openssl req -new -key server.key -out server.csr

在此步驟中,你需要輸入證書相關的信息,例如國家、省份、城市等信息。這些信息將被包含在最終的證書中。

4、移除私鑰的口令:

sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key

5、生成自簽名證書:

sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

這樣,我們就生成了一個自簽名的服務器證書。

三、配置Nginx支持SSL

現在,我們已經獲得了證書,下一步就是設置Nginx支持HTTPS協議。

1、安裝Nginx:

sudo apt-get update
sudo apt-get install nginx

2、備份默認的Nginx配置文件:

sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

3、創建新的Nginx配置文件,並將以下內容複製到文件中:

sudo nano /etc/nginx/nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
  worker_connections 1024;
}

http {
  server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
  }
  
  server {
    listen 443 ssl;

    server_name example.com;

    ssl_certificate /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;

    ssl_protocols TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5:!ADH;
    ssl_prefer_server_ciphers on;

    location / {
      proxy_pass http://localhost:3000;
    }
  }
}

注意替換以下內容:

  • example.com是你的域名,需要替換成你自己的域名。
  • proxy_pass是代理轉發地址,需要替換成你自己的地址。

4、重啟Nginx服務:

sudo systemctl restart nginx

現在,我們已經成功地設置了Nginx支持HTTPS協議,並使用了自簽名證書。

四、使用Let’s Encrypt簽發證書

如果你並不想使用自簽名證書,而是希望使用公共機構簽發的可信證書,那麼可以考慮使用Let’s Encrypt。下面是使用Let’s Encrypt簽發證書的步驟:

1、安裝Certbot工具:

sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install -y certbot

2、使用以下命令獲取並安裝證書:

sudo certbot certonly --standalone -d example.com -d www.example.com

該命令將使用單獨的插件來啟動一個Web服務器,並向Let’s Encrypt服務器發出請求。你需要將example.com替換成你自己的域名。執行後,將生成新的證書文件,存放在/etc/letsencrypt/live/example.com目錄下。

3、編輯Nginx配置文件:

sudo nano /etc/nginx/nginx.conf

4、將以下內容添加到server的配置塊內:


ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

注意替換example.com為你自己的域名。

5、重啟Nginx服務:

sudo systemctl restart nginx

現在,我們已經成功使用Let’s Encrypt簽發了證書,並配置了Nginx支持HTTPS協議。

總結

本文中,我們介紹了Ubuntu安裝OpenSSL的詳細過程和配置指南。我們學習了如何生成自簽名數字證書,並使用Nginx支持SSL協議和HTTPS協議。另外,我們也介紹了如何使用Let’s Encrypt簽發證書,使我們的HTTPS協議更加安全可靠。

原創文章,作者:UHGSX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/318122.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UHGSX的頭像UHGSX
上一篇 2025-01-11 16:28
下一篇 2025-01-11 16:28

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • 運維Python和GO應用實踐指南

    本文將從多個角度詳細闡述運維Python和GO的實際應用,包括監控、管理、自動化、部署、持續集成等方面。 一、監控 運維中的監控是保證系統穩定性的重要手段。Python和GO都有強…

    編程 2025-04-29
  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python應用程序的全面指南

    Python是一種功能強大而簡單易學的編程語言,適用於多種應用場景。本篇文章將從多個方面介紹Python如何應用於開發應用程序。 一、Web應用程序 目前,基於Python的Web…

    編程 2025-04-29
  • Python wordcloud入門指南

    如何在Python中使用wordcloud庫生成文字雲? 一、安裝和導入wordcloud庫 在使用wordcloud前,需要保證庫已經安裝並導入: !pip install wo…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Python小波分解入門指南

    本文將介紹Python小波分解的概念、基本原理和實現方法,幫助初學者掌握相關技能。 一、小波變換概述 小波分解是一種廣泛應用於數字信號處理和圖像處理的方法,可以將信號分解成多個具有…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • Python字符轉列表指南

    Python是一個極為流行的腳本語言,在數據處理、數據分析、人工智能等領域廣泛應用。在很多場景下需要將字符串轉換為列表,以便於操作和處理,本篇文章將從多個方面對Python字符轉列…

    編程 2025-04-29
  • 如何安裝Ubuntu操作系統

    Ubuntu是一種基於Linux的操作系統,如今在開源社區中被廣泛使用。相較於其他操作系統,Ubuntu具有更好的安全性、穩定性和定製性等特點。以下是安裝Ubuntu的詳細過程。 …

    編程 2025-04-29

發表回復

登錄後才能評論