在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