折腾:
【已解决】购买阿里云首年免费的https证书:Symantec免费型DV SSL证书
后,已经买到了2个首年免费的阿里云合作的Symantec的免费型DV SSL证书:
通过:
云盾管理控制台



点击:
证书服务(应用安全)
云上签发Symantec、CFCA SSL数字证书,实现HTTPS化
进入:
SSL证书管理控制台

点击 部署到云产品 右边下拉箭头:

CDN 或SLB 选啥?
不管,直接点击 部署到云产品 吧
结果还是弹出:
CDN 或SLB
参考:
看来是去下载证书,再去配置服务器的nginx

去下载nginx的:


解压得到:
cert-1542781845390_www.xxx.crt

cert-1542781845390_www.xxx.key

同样去下载nginx的证书:
- cert-1542782485582_dev.xxx_nginx.zip
解压得到:
- cert-1542782485582_dev.xxx.crt
- cert-1542782485582_dev.xxx.key
看看cert证书的信息:

再去看看key的信息:

然后再去服务器中配置nginx的https证书:
阿里云 https证书 nginx 配置
先去阿里云的ECS服务器的安全组中确认443端口是否允许访问
就可以了:
允许 自定义 TCP 443/443 地址段访问 0.0.0.0/0 System created rule. 110 2018年3月13日 11:48 修改|克隆|删除

dev.xxx
中好像没有443:

去添加:


先去给www.xxx添加https,不过看了些帖子,先要去:
【已解决】nginx中关于ssl配置的逻辑和常见参数含义
然后再去加上配置:
# server
# {
# listen 80 default_server;
# server_name www.xxx;
# index index.php index.html index.htm default.php default.htm default.html;
# root /www/wwwroot/www.xxx;
# #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
# #error_page 404/404.html;
# #SSL-END
# #ERROR-PAGE-START 错误页配置,可以注释、删除或修改
# error_page 404 /404.html;
# error_page 502 /502.html;
# #ERROR-PAGE-END
# #PHP-INFO-START PHP引用配置,可以注释或修改
# include enable-php-56.conf;
# #PHP-INFO-END
# #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
# include /www/server/panel/vhost/rewrite/www.xxx.conf;
# #REWRITE-END
# #禁止访问的文件或目录
# location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
# {
# return 404;
# }
# location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
# {
# expires 30d;
# access_log off;
# }
# location ~ .*\.(js|css)?$
# {
# expires 12h;
# access_log off;
# }
# access_log /www/wwwlogs/www.xxx.log;
# }
server {
listen 80;
return 301 https://$host$request_uri;
}
server
{
listen 443 ssl;
server_name www.xxx;
### Https Related Config
keepalive_timeout 70; # 设置长连接
ssl_certificate /www/server/nginx/conf/cert/www.xxx_aliyun_symantec_free_ov_ssl.crt; # 证书文件
ssl_certificate_key /www/server/nginx/conf/cert/www.xxx_aliyun_symantec_free_ov_ssl.key; # 私钥文件
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_ciphers ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_session_timeout 10m; # 配置会话超时时间
ssl_session_cache shared:SSL:10m; # 配置共享会话缓存大小,视站点访问情况设定
ssl_prefer_server_ciphers on; #优先采取服务器算法
# 如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS(HTTP Strict Transport Security) ,使用 HSTS 策略强制浏览器使用 HTTPS 连接
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always;
add_header X-Frame-Options DENY; #减少点击劫持
add_header X-Content-Type-Options nosniff; #禁止服务器自动解析资源类型
add_header X-Xss-Protection 1; #防XSS攻击
### Normal Http 80 Related Config
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/www.xxx;
access_log /www/wwwlogs/www.xxx_https.log;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-56.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/www.xxx.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$
{
expires 12h;
access_log off;
}
}其中https的配置如下:
server
{
listen 443 ssl;
server_name www.xxx;
### Https Related Config
keepalive_timeout 70; # 设置长连接
ssl_certificate /www/server/nginx/conf/cert/www.xxx_aliyun_symantec_free_ov_ssl.crt; # 证书文件
ssl_certificate_key /www/server/nginx/conf/cert/www.xxx_aliyun_symantec_free_ov_ssl.key; # 私钥文件
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_ciphers ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_session_timeout 10m; # 配置会话超时时间
ssl_session_cache shared:SSL:10m; # 配置共享会话缓存大小,视站点访问情况设定
ssl_prefer_server_ciphers on; #优先采取服务器算法
# 如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS(HTTP Strict Transport Security) ,使用 HSTS 策略强制浏览器使用 HTTPS 连接
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always;
add_header X-Frame-Options DENY; #减少点击劫持
add_header X-Content-Type-Options nosniff; #禁止服务器自动解析资源类型
add_header X-Xss-Protection 1; #防XSS攻击
}以及http跳转https是:
server {
listen 80;
return 301 https://$host$request_uri;
}然后去看看效果如何:
[root@xxx nginx]# nginx -t nginx: the configuration file /www/server/nginx/conf/nginx.conf syntax is ok nginx: configuration file /www/server/nginx/conf/nginx.conf test is successful
至少没有出错。
重新加载生效:
[root@xxx nginx]# service nginx reload Reload service nginx... done [root@xxx nginx]# service nginx status nginx (pid 11981 11980 11979 4976) already running. [root@xxx nginx]# service nginx stop Stoping nginx... done [root@xxx nginx]# service nginx start Starting nginx... done [root@xxx nginx]# service nginx status nginx (pid 12032 12031 12030 12029 12028) already running.
然后遇到:
【已解决】nginx中配置了https的ssl证书后不起效果
【总结】
特别提醒:
此时阿里云ECS的安全组,虽然已经加上了443的tcp允许访问:
但是实际上是不其效果的!!!
最后是通过CentOS的firewalld去添加https的443端口:
firewall-cmd --zone=public --add-service=https --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --reload
才真正似的443的https网页得以正常打开。
以及加上https的nginx的配置:
server {
listen 80 default_server;
return 301 https://$host$request_uri;
}
server
{
# listen 80;
listen 443 ssl;
# listen [::]:443 ssl;
# listen [::]:443 ssl http2;
# listen 443 ssl http2;
# listen 443 spdy;
server_name xxx www.xxx;
# server_name www.xxx;
# ssl on;
### Https Related Config
keepalive_timeout 70; # 设置长连接
ssl_certificate /www/server/nginx/conf/cert/www.xxx_aliyun_symantec_free_ov_ssl.crt; # 证书文件
ssl_certificate_key /www/server/nginx/conf/cert/www.xxx_aliyun_symantec_free_ov_ssl.key; # 私钥文件
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_ciphers ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_session_timeout 10m; # 配置会话超时时间
ssl_session_cache shared:SSL:10m; # 配置共享会话缓存大小,视站点访问情况设定
ssl_prefer_server_ciphers on; #优先采取服务器算法
# 如果是全站 HTTPS 并且不考虑 HTTP 的话,可以加入 HSTS(HTTP Strict Transport Security) ,使用 HSTS 策略强制浏览器使用 HTTPS 连接
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always;
add_header X-Frame-Options DENY; #减少点击劫持
add_header X-Content-Type-Options nosniff; #禁止服务器自动解析资源类型
add_header X-Xss-Protection 1; #防XSS攻击
### Normal Http 80 Related Config
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/www.xxx;
access_log /www/wwwlogs/www.xxx_https.log;
error_log /www/wwwlogs/www.xxx_https_error.log;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-56.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/www.xxx.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$
{
expires 12h;
access_log off;
}
}实现了:
访问所有的80的http地址,都跳转到对应的443的https
然后https的地址,都可以正常打开了:

