ubuntu中nginx配置ssl证书使用https,外加阿里云cdn配置详解
在ubuntu系统中nginx配置ssl证书使用https如何操作?
我的操作案例中将http://aaa.com和http://ww.aaa.com解析到了源服务器IP,在源服务器nginx里面http段增加了server如下代码:(代码标记①)
server{
listen 80;
#如果域名没使用阿里云cdn,那么此处应该增加一个www.aaa.com
#不带www和ww解析到了本服务器的80端口,而www解析到了阿里云
#阿里云ssl证书控制台要将证书部署到cdn
#阿里云cdn控制台要将源站ip端口改为443,回源配置中的回源SNI要设置为www.aaa.com,https配置中开启强制跳转
#等于80端口将server_name全部301到443端口
server_name aaa.com ww.aaa.com;
rewrite ^(.*) https://www.aaa.com$1 permanent;
}
主要用来将http:// aaa.com和http:// ww.aaa.com自动跳转至https://www.aaa.com(那么此处会遗留一个问题,就是http://www.aaa.com如何跳转至https://www.aaa.com呢?刚刚添加的代码中已经解释了,要开启阿里云cdn的https配置中开启强制跳转),由此就解决了http://aaa.com和http:// ww.aaa.com和http://www.aaa.com全部301跳转至https://www.aaa.com。
需要注意的是,阿里云的配置有几处需要修改:
1,阿里云ssl证书控制台要将证书部署到cdn
2,阿里云cdn控制台要将源站ip端口改为443
3,回源配置中的回源SNI要设置为www.aaa.com
4,https配置中开启强制跳转
好了,接下来就是本机服务器的配置ssl使用https来监听443端口了,到/etc/nginx/conf.d.my目录下(我自己新建的配置文件目录是conf.d.my,利于打理),新建ssl_cert用于存放证书目录,/etc/nginx/conf.d.my/ssl_cert,在nginx的http段中增加相应的server代码:(代码标记②)
server {
#只监听443 ssl,需要单独加server listen 80
listen 443 ssl;
#80和443同时可以访问
#listen 80;
#listen 443 default ssl;
#nginx 1.15版本如果使用listen 443 ssl,删除ssl on就行了
#ssl on;
server_name www.aaa.com;
ssl_certificate conf.d.my/ssl_cert/www.aaa.com.pem;
ssl_certificate_key conf.d.my/ssl_cert/www.aaa.com.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;
root /www/webroot/aaa.com/;
#下面的代码是我自己的配置,网友需要更改为自己的实际情况
include /etc/nginx/conf.d.my/server/agent.deny.conf;
include /www/webroot/aaa.com/.htaccess;
location / {
try_files $uri $uri/ =404;
index index.html index.php index.htm;
}
location ~ \.php$ {
include fastcgi_params;
include /etc/nginx/conf.d.my/location/fastcgi_params;
include /etc/nginx/conf.d.my/location/limit_req;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=/www/webroot/aaa.com/:/tmp/";
}
location ~ /\.htaccess {
deny all;
}
}
特别注意,上方的代码中:
ssl_certificate conf.d.my/ssl_cert/www.qibangkeji.com.pem;
ssl_certificate_key conf.d.my/ssl_cert/www.qibangkeji.com.key;
不能使用绝对路径,比如不能写成:/etc/nginx/conf.d.my/ ssl_cert/www.qibangkeji.com.pem; 否则会报错。
以上就是ubuntu中nginx配置ssl证书使用https,外加阿里云cdn配置详解。如有错误欢迎指正。
当然,如果不使用阿里云的cdn,就将www和不带www的和ww都解析到源服务器IP,然后修改代码片段①即可:
server{
listen 80;
server_name aaa.com ww.aaa.com www.aaa.com;
rewrite ^(.*) https://www.aaa.com$1 permanent;
}
近期评论