,sudo apt-get update,sudo apt-get install openssl,
`,,2. 生成私钥和 CSR(证书签名请求):,
`,sudo openssl req -newkey rsa:2048 -nodes -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.csr,
`,按照提示输入相关信息,如国家、省份、城市等。,,3. 生成自签名 SSL 证书:,
`,sudo openssl x509 -req -days 365 -in /etc/nginx/ssl/nginx.csr -signkey /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt,
`,这将生成一个有效期为 365 天的自签名 SSL 证书。,,4. 配置 Nginx 以使用自签名 SSL 证书:,编辑 Nginx 配置文件(通常位于
/etc/nginx/sites-available/default),将以下内容添加到
server 块中:,
`,listen 443 ssl;,ssl_certificate /etc/nginx/ssl/nginx.crt;,ssl_certificate_key /etc/nginx/ssl/nginx.key;,
`,保存并退出编辑器。,,5. 重启 Nginx 以应用更改:,
`,sudo systemctl restart nginx,
“,现在,Nginx 应该已经配置为使用自签名 SSL 证书。访问服务器时,浏览器可能会显示一个安全警告,因为这是一个自签名证书。在实际生产环境中,建议使用权威证书颁发机构颁发的证书。在 Ubuntu 20.04 中为 Nginx 创建自签名 SSL 证书的步骤如下:
1、安装 OpenSSL 和 Certbot
打开终端,运行以下命令以安装 OpenSSL 和 Certbot:
“`
sudo apt update
sudo apt install softwarepropertiescommon
sudo addaptrepository ppa:certbot/certbot
sudo apt install pythoncertbotnginx
“`
2、生成私钥和证书签名请求(CSR)
运行以下命令生成私钥和 CSR:
“`
sudo openssl req new newkey rsa:2048 nodes keyout /etc/ssl/private/nginx.key out /etc/ssl/csr/nginx.csr
“`
按照提示输入相关信息,如国家、组织等。
3、自签名证书的申请与安装
运行以下命令使用 Certbot 自动申请并安装自签名证书:
“`
sudo certbot nginx d example.com d www.example.com agreetos noeffemail redirect n stapleocsp
“`
将 example.com
替换为您自己的域名。
4、配置 Nginx 使用自签名证书
打开 Nginx 配置文件 /etc/nginx/sitesavailable/default
,找到 server
块,修改为以下内容:
“`
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
try_files $uri $uri/ =404;
}
}
“`
将 example.com
替换为您自己的域名。
保存文件并退出编辑器。
重启 Nginx 服务以应用更改:
“`
sudo systemctl restart nginx
“`
5、测试自签名证书是否生效
在浏览器中访问您的网站,确保显示安全锁标志,并且网站可以正常加载,如果一切正常,则表示自签名证书已成功安装并生效。
相关问题与解答:
1、Q: 我使用的是旧版本的 Nginx,如何为其创建自签名证书?
A: 如果使用的是旧版本的 Nginx,可以使用 OpenSSL 工具手动生成私钥和 CSR,然后使用 Certbot 进行证书的申请和安装,具体步骤可以参考官方文档或相关教程。
2、Q: 我的网站有多个域名,如何为每个域名都配置自签名证书?
A: 如果网站有多个域名,可以为每个域名分别生成一个私钥和 CSR,然后使用 Certbot 为每个域名申请和安装独立的证书,在 Nginx 配置文件中,为每个域名创建一个 server
块,并指定相应的证书和私钥文件路径即可。
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/358780.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复