CentOS7 配置Nginx域名HTTPS

Configuring Nginx with HTTPS on CentOS 7 involves similar steps to the ones for Ubuntu, but with some variations in package management and service control. Here's a step-by-step guide for CentOS 7:

Prerequisites

  1. Domain Name : "www.xxx.com"
  2. Nginx Installed: Ensure Nginx is installed.
  3. Domain DNS: Domain should point to your server's IP address.
  4. Root Privileges : You should have root or sudo privileges.

Step-by-Step Guide

1. Install Nginx

If Nginx is not already installed, you can install it using the following commands:

sh 复制代码
sudo yum install epel-release
sudo yum install nginx

Start and enable Nginx to start on boot:

sh 复制代码
sudo systemctl start nginx
sudo systemctl enable nginx
2. Configure Firewall

Allow HTTPS traffic through your firewall:

sh 复制代码
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
3. Obtain SSL Certificate

Install Certbot and the Nginx plugin:

sh 复制代码
sudo yum install certbot python2-certbot-nginx
4. Request SSL Certificate

Run Certbot to obtain and install the SSL certificate:

sh 复制代码
sudo certbot --nginx -d www.xxx.com

Follow the prompts to complete the process. Certbot will automatically configure Nginx to use the SSL certificate.

5. Verify Nginx Configuration

Open your Nginx configuration file to verify or manually configure the SSL settings:

sh 复制代码
sudo vim /etc/nginx/conf.d/www.xxx.com.conf

Ensure your server block looks like this:

nginx 复制代码
server {
    listen 80;
    listen [::]:80;
    server_name www.xxx.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name www.xxx.com;

    ssl_certificate /etc/letsencrypt/live/www.xxx.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.xxx.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    root /usr/share/nginx/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}
6. Test Nginx Configuration

Test your configuration to ensure there are no syntax errors:

sh 复制代码
sudo nginx -t

If the test is successful, reload Nginx:

sh 复制代码
sudo systemctl reload nginx
7. Set Up Automatic Certificate Renewal

Let's Encrypt certificates are valid for 90 days. Certbot can handle renewal automatically. To set up a cron job for automatic renewal, open the crontab editor:

sh 复制代码
sudo crontab -e

Add the following line to the crontab file:

sh 复制代码
0 0,12 * * * /usr/bin/certbot renew --quiet

This runs the renewal command twice daily.

Access Your Site

Now, you should be able to access your site securely at https://www.xxx.com.

Troubleshooting

If you encounter any issues, check the Nginx and Certbot logs for more information:

sh 复制代码
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/letsencrypt/letsencrypt.log

This setup ensures that your website is served over HTTPS, providing security and trust to your visitors.

相关推荐
Trouvaille ~1 小时前
【Linux】UDP Socket编程实战(一):Echo Server从零到一
linux·运维·服务器·网络·c++·websocket·udp
嵌入小生0071 小时前
Shell | 命令、编程及Linux操作系统的基本概念
linux·运维·服务器
-Try hard-2 小时前
Linuv软件编程 | Shell命令
linux·运维·服务器
释怀不想释怀2 小时前
Linux快捷键,软件安装启动
linux·运维·服务器
zhengfei6112 小时前
自动化快速评估工具
运维·自动化
Hello World . .2 小时前
Linux:软件编程
linux·运维·服务器·vim
老师用之于民3 小时前
【DAY21】Linux软件编程基础&Shell 命令、脚本及系统管理实操
linux·运维·chrome·经验分享·笔记·ubuntu
路由侠内网穿透.3 小时前
本地部署代码托管解决方案 Gitea 并实现外部访问( Windows 版本)
运维·服务器·网络协议·gitea
江畔何人初4 小时前
pod的内部结构
linux·运维·云原生·容器·kubernetes
齐鲁大虾4 小时前
Linux下用什么编程语言方便开发B/S架构程序
linux·运维·架构