如何在 Ubuntu 20.04 中为 Nginx 创建自签名 SSL 证书

原创
ithorizon 7个月前 (10-12) 阅读数 26 #Linux

怎样在 Ubuntu 20.04 中为 Nginx 创建自签名 SSL 证书

自签名SSL证书是一种在本地或非商业环境中使用的SSL证书,它不需要通过第三方认证机构进行认证。在Ubuntu 20.04上为Nginx服务器创建自签名SSL证书是一个相对明了的过程,下面将详细介绍怎样进行。

准备工作

在开端之前,请确保您的Ubuntu 20.04系统已经安装了Nginx。如果没有安装,可以通过以下命令进行安装:

sudo apt update

sudo apt install nginx

安装完成后,您可以通过访问http://localhost来检查Nginx是否正常运行。

生成自签名SSL证书

生成自签名SSL证书需要以下步骤:

  1. 生成CA私钥
  2. 生成CA证书
  3. 生成服务器私钥
  4. 生成服务器证书请求
  5. 使用CA证书签名服务器证书请求

以下是一个明了的命令行步骤,用于生成自签名SSL证书:

# 1. 生成CA私钥

sudo openssl genpkey -algorithm RSA -out ca.key -pkeyopt rsa_keygen_bits:4096

# 2. 生成CA证书

sudo openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt

# 3. 生成服务器私钥

sudo openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:4096

# 4. 生成服务器证书请求

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

# 5. 使用CA证书签名服务器证书请求

sudo openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial -out server.crt -days 3650 -sha256

在执行上述命令时,您或许需要提供一些信息,如国家、省份、市、组织、组织单位、电子邮件地址和常见名称(CN)。这些信息将用于生成证书请求和证书本身。

配置Nginx以使用SSL证书

生成证书后,需要配置Nginx以使用这些证书。以下是一个基本的Nginx配置示例,用于启用SSL并指定证书文件:

server {

listen 443 ssl;

server_name yourdomain.com;

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

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

ssl_session_timeout 1d;

ssl_session_cache shared:SSL:50m;

ssl_session_tickets off;

ssl_protocols TLSv1.2 TLSv1.3;

ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...';

ssl_prefer_server_ciphers on;

location / {

root /var/www/html;

index index.html index.htm;

}

}

请将`yourdomain.com`替换为您的主机名或域名,并将证书文件路径替换为您的SSL证书和私钥文件的实际路径。

重启Nginx以应用配置更改

配置完成后,需要重启Nginx以使更改生效:

sudo systemctl restart nginx

现在,当您访问您的网站时,它应该通过HTTPS协议提供内容,并使用您刚刚生成的自签名SSL证书。

测试SSL证书

为了验证SSL证书是否正常工作,可以使用在线工具或命令行工具进行测试。以下是一个使用命令行工具测试SSL证书的示例:

openssl s_client -connect yourdomain.com:443 -showcerts

如果一切正常,您应该会看到证书信息被打印出来。

总结

在Ubuntu 20.04上为Nginx创建自签名SSL证书是一个相对明了的过程,只需生成必要的密钥和证书,然后将它们配置到Nginx中即可。虽然自签名证书不提供第三方认证机构的信赖,但它们对于开发、测试或内部使用来说仍然非常有用。

请注意,自签名证书或许会在浏览器中引起警告,归因于浏览器默认不信赖自签名证书。如果需要,您可以手动导入CA证书到浏览器中,以避免这些警告。

本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: Linux


热门