刚搭建好自己的个人站,看到谷歌浏览器地址栏最前面标着“不安全”三个字,还是挺不爽的,所以就顺便配置一下SSL加密。
如果你用的是阿里云的服务,那么配置SSL挺简单的。
首先去阿里云购买免费的SSL证书,有效期一年,到期以后再免费续期。
这是我在阿里云文档里找到的一个截图,下载里面的nginx压缩包。
解压后的文件夹中有2个文件:
证书文件:以.pem为后缀或文件类型。
密钥文件:以.key为后缀或文件类型。
我用的是ubuntu server服务器,那么nginx默认安装位置是在:/etc/nginx/
在此目录下创建cert目录,并把证书文件(.pem)和密钥文件(.key)上传到此目录。
然后打开nginx配置自己网站的配置文件,把 server {} 这段内容复制粘贴一份,增加以下配置。
server {
# SSL configuration
listen 443 ssl default_server; #端口改为443,并加上ssl标记,提升兼容性
listen [::]:443 ssl default_server; #这段是ipv6的配置,也是把端口改为443
ssl on; # 开启SSL
ssl_certificate cert/domain.com.pem; #证书文件地址
ssl_certificate_key cert/domain.com.key; #密钥文件地址
ssl_session_timeout 30m; #会话过期默认5分钟,我改成了30分钟
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #指定使用哪些加密协议,SSLv1 SSLv2不安全,不建议使用
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #加密套件
ssl_prefer_server_ciphers on; #指定服务端加密套件优先
}
保存nginx配置文件后,退出。
重启nginx。
新版本的nginx已经不再支持以前的重启命令
所以可以用新的重启命令
先用命令检查一下nginx配置是否正确
nginx -t
再用命令找到nginx服务的进程号
ps -ef | grep nginx
然后用命令平滑重启,不影响nginx继续运行
kill -HUP 进程号
实现http强制跳转https的方法
我所查到,有多种跳转方法,最后我选择了这一种。
server {
listen 80;
listen [::]:80;
server_name www.domain.com;
return 301 https://$server_name$request_uri; # 在http配置处加上这句即可
}
--End--