1,简介
最近在做一个微信小程序的项目,把我搞得焦头烂额,微信小程序默认必须使用https加密请求,现在配置好了,所以记录一下,如果你也遇到疑惑,希望下面的文章可以帮到你~~!
2,配置https必须先获取加密文件
例如我的网站是 www.api1000.com 那么先去申请加密文件,我这里使用的是腾讯云的,原本使用阿里云的,结果阿里云的凉了。。。
腾讯云申请地址:登录 - 腾讯云
或者去亚洲诚信申请:SSL证书_HTTPS证书申请_购买_SSL数字证书领导者 - 亚洲诚信/TrustAsia
免费的SSL基本都是亚洲诚信提供的,腾讯云的也是
走到第三步根据自己的域名服务商进入dns解析页面
腾讯云操作指引进入以下页面
https://console.cloud.tencent.com/cns
阿里云进入以下页面
https://dc.console.aliyun.com/next/index#/domain-list/all
添加成功后回到证书申请页面进行验证
https://console.cloud.tencent.com/ssl
3,然后根据申请通过的提示下载证书文件
4,下面开始配置apache支持SSL加密
打开apache24/conf/httpd.conf,并找到下面两行
去掉前面的#,这个是开启ssl功能模块,并加载ssl.conf 配置文件,加载文件主要配置我们下载的加密文件
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf
5,配置apache2.4.33注意项
我使用的是apache2.4.33
下载: apache-2.4.33-vc11-32位版本-PHP其他资源-CSDN下载
apache2.4.33 默认开启了 ahssl
这个是自带的,但是ahssl.conf里面的443端口跟 ssl.conf 冲突了
所以我们先注释掉ahssl.conf,直接换成我们需要的ssl.conf即可
#Include conf/extra/httpd-ahssl.conf
6,配置apache2.4.33开启https
1,打开 Apache24\conf\extra\httpd-ssl.conf
复制VirtualHost 找到下面这一块配置,配置好自己的域名
2,继续往下面找到:SSLCertificateFile和SSLCertificateKeyFile 并配置好自己的加密文件,直接将自己的加密文件复制到conf下即可,把自己的名字修改成server.crt 和 server.key 另外再加上SSLCertificateChainFile 因为有的apache中没有这个,直接加上即可
SSLCertificateFile "${SRVROOT}/conf/server.crt"
SSLCertificateKeyFile "${SRVROOT}/conf/server.key"SSLCertificateChainFile "${SRVROOT}/conf/1_root_bundle.crt"
7,全部配置好了,重启apache
访问:https://www.api1000.com 成功打开~~~
时间:2018年4月4号
=========================================================================
新增nginx配置https,v1.14.1
1,下载nginx证书
2,nginx目录新建配置文件,文件名随意起
/etc/nginx/conf.d/https.api1000.com.conf
红色区域是需要修改的地方
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name www.api1000.com;
root /www/project/home;
ssl_certificate "/etc/nginx/conf.d/api1000.com_nginx/api1000.com_bundle.crt";
ssl_certificate_key "/etc/nginx/conf.d/api1000.com_nginx/api1000.com.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers PROFILE=SYSTEM;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
子域名配置https(子域名listen去掉default_server)
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name abc.api1000.com;
root /www/project/home;
ssl_certificate "/etc/nginx/conf.d/abc.api1000.com_nginx/abc.api1000.com_bundle.crt";
ssl_certificate_key "/etc/nginx/conf.d/abc.api1000.com_nginx/abc.api1000.com.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers PROFILE=SYSTEM;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
# 转发
location / {
charset utf-8;
if ($request_method = OPTIONS ) {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers Origin,X-Requested-With,Content-Type,Accept;
return 200;
}
proxy_pass http://localhost:8888;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Real-Port $remote_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
4,刷新nginx配置文件
nginx -s reload //刷新配置
nginx -t //检查配置是否正确
访问:https://www.api1000.com 成功打开~~~