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/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

发表回复

登录后才能评论