Nginx配置SSL证书(申请免费SSL证书)怎样给网站的"http"加上"s",即网站可以通过"https"访问?
当然,首先得有一个已经购买的域名!
我现在以阿里云为例,进行配置!
申请SSL免费证书
首先进入阿里云的`管理控制台------>域名------>点击进入域名解析列表(请看下图);
然后点击更多的SSL证书(请看下图)
然后点击右侧的免费版SSL证书(请看下图);
需要再次点击申请------>点击验证;
申请之后,需要等待一会,很快就会通过,请耐心等待;
然后返回证书列表------>点击下载;
下载之后,解压压缩包会得到两个文件,一个是.key,一个是.pem(请看下图);
然后需要到你的服务器开放443端口,这里我以阿里云的ECS服务器为例;
点击安全组------>点击配置规则;
然后点击添加安全组规则------>点击自定义TCP------>选择HTTPS(443);
1. 然后在Nginx安装目录下创建cert目录,并将下载的证书文件和密钥文件拷贝到cert目录中。
2. 打开Nginx安装目录 > conf文件夹 > nginx.conf 文件,在 nginx.conf 文件中找到以下属性:
# HTTPS server
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
3. 修改 nginx.conf 文件如下:
以下属性中以 ssl 开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
server {
listen 443;
server_name localhost; # localhost修改为您证书绑定的域名。
ssl on; #设置为on启用SSL功能。
root html;
index index.html index.htm;
ssl_certificate cert/domain name.pem; #将domain name.pem替换成您证书的文件名。
ssl_certificate_key cert/domain name.key; #将domain 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; #使用该协议进行配置。
ssl_prefer_server_ciphers on;
location / {
root html; #站点目录。
index index.html index.htm; #添加属性。
}
}
4. (可选步骤)设置http请求强制跳转https,支持使用http协议进行范文。修改 nginx.conf 文件如下:
server {
listen 80;
server_name localhost; #使用您证书绑定的域名替换localhost。
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name localhost; #使用您证书绑定的域名替换localhost。
}
5. 保存 nginx.conf 文件后退出。
6. 重启 Nginx 服务器。
也可以参阅官方配置文档: 在Nginx/Tengine服务器上安装证书 https://help.aliyun.com/document_detail/98728.html
官方配置文档很详细,可以自己进行配置!