hexo的Nginx添加SSL实现HTTPS访问

实现Nginx添加SSL实现HTTPS访问

申请ssl

购买免费SSL证书

云盾证书服务 (aliyun.com)

image-20231109131810089

创建证书

数字证书管理服务管理控制台 - SSL 证书 (aliyun.com)

这里需要填写个人信息,如果域名和ssl都是阿里云里购买的,那就只要选择自动DNS验证,否则得手动验证,即添加DNS解析就好

下载证书

image-20231109132243262

image-20231109132254895

安装nginx

服务端(ubuntu)

更新源

# 获得源上的软件包列表信息
sudo apt-get update
# 更新本地软件
sudo apt-get upgrade

安装nginx

sudo apt-get install -y nginx

启动服务器

systemctl start nginx
systemctl enable nginx

nginx默认配置文件路径是:/etc/nginx

修改配置文件

etc/nginx
	|- nginx.conf 		#主配置文件
	|- conf.d/ 	# 默认读取的配置文件(自己创建)
		|- *.conf

创建default.conf配置文件

sudo cp sites-available/default conf.d/default.conf
sudo vim default.conf

default.conf内容

server {
  listen 80;
  server_name www.mufei.fun mufei.fun;
  rewrite ^(.*) https://$server_name$1 permanent; #此句最关键
}
server {
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name www.mufei.fun mufei.fun;
  root /home/ubuntu/hexo;
  index index.html;
  ssl_certificate /etc/nginx/cert/mufei.fun.pem;  #需要将cert-file-name.pem替换成已上传的证书文件的名称。
  ssl_certificate_key /etc/nginx/cert/mufei.fun.key; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。
  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  #表示使用的加密套件的类型。
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
  ssl_prefer_server_ciphers on;

  location / {
		root /home/ubuntu/hexo;
    index index.html;
    # autoindex on; #资源站要加,加了就可以访问文件夹了
	}
}

将ssl文件移入到/etc/nginx/cert/下面

应用配置文件

nginx -t		// 查看nginx状态(用来测试配置是否正确)
nginx -s reload	// 重新载入配置文件
nginx -s reopen	// 重启 Nginx
nginx -s stop	// 停止 Nginx