申请证书

  • 登录:阿里云控制台,产品与服务,证书服务,购买证书。
  • 购买:证书类型选择 免费型DV SSL,然后完成购买。

要来回点击寻找一下,因为免费版隐藏了

[外链图片转存失败(img-oJWmi8sS-1567235993417)(https://user-images.githubusercontent.com/17243165/38716964-559f0ab2-3f16-11e8-9ced-10ab483be7bc.png)]

配置

等待阿里云签发成功,然后在右边栏目里面选择下载

安装证书

文件说明:

  1. 证书文件1523928142501.pem,包含两段内容,请不要删除任何一段内容。
  2. 如果是证书系统创建的CSR,还包含:证书私钥文件1523928142501.key、证书公钥文件public.pem、证书链文件chain.pem。
    ( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为1523928142501.key;
    ( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”:
#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd-ssl.conf

( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句:

# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile cert/public.pem
# 证书私钥配置
SSLCertificateKeyFile cert/1523928142501.key
# 证书链配置,如果该属性开头有 '#'字符,请删除掉
SSLCertificateChainFile cert/chain.pem

( 4 ) 重启 Apache。
( 5 ) 通过 https 方式访问您的站点,测试站点证书的安装配置,如遇到证书不信任问题

这里注意如果使用阿里云还要在安全组规则里面设置443端口的出入方向

Apache反向代理设置https

因为我是用express框架写的后端,apache默认占了80端口,express可以通过反向代理来享用80端口

首先在 httpd.conf 启用必要的模块,也就是如果去掉下面这几行前面的 #

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.soInclude conf/extra/httpd-ssl.conf

httpd.conf 末端添加如下设置,注意 ProxyPassProxyPassReverse 设置为express框架暴露的端口,并且设置好 SSLCertificateFileSSLCertificateKeyFile 的路径,路径就是上面安装证书步骤里面的路径

<VirtualHost *:80>ServerAdmin www.smms.inkServerName www.smms.inkProxyRequests Off<Proxy *>Order deny,allowAllow from all</Proxy>ProxyPass / http://127.0.0.1:1314/ProxyPassReverse / http://127.0.0.1:1314/
</VirtualHost><virtualhost *:443>ServerName www.smms.ink<proxy>Order deny,allowAllow from all</proxy>SSLEngine OnSSLProxyEngine OnSSLProxyVerify noneSSLProxyCheckPeerCN offSSLProxyCheckPeerName offSSLCertificateFile cert/public.pemSSLCertificateKeyFile cert/1523928142501.keyProxyRequests OffProxyPreserveHost OnProxyPass / http://127.0.0.1:1314/ProxyPassReverse / http://127.0.0.1:1314/
</virtualhost>

此时当我们访问 https://www.xxx.com 就等于 访问到内网的 http://127.0.0.1:1314
这样对 https://www.xxx.com 的访问,返回的数据将是来自 http://127.0.0.1:1314

上面的这个配置思路总结为如下三步:

  1. 正常启动express项目在1314端口
  2. 然后用apache服务器实现反向代理
  3. 再用apache配置https

Apache和node共享端口

参考文档Apache和nodejs公用80端口的问题

思路是通过不同域名来区分进去是apache解析还是node解析文件,可以利用二级域名来划分

ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
/ 映射到  http://127.0.0.1:9000/

你可以根据自己的路由规则来实现不用的需求,例如:

ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/ProxyPass /nodejs http://127.0.0.1:1314
ProxyPassReverse /nodejs http://127.0.0.1:1314

此时我们可以根据不同的二级路由进入内网的不同端口,拨入我们可以把/nodejs分配给node开的1314端口,那么外网就可以通过https://xxx/nodejs/xxx进入到nodejs的服务器中,对应如果是其他路由就会进入到apache服务器中

企业支付宝接入

接入之前建议先看官方文档比较详细

创建应用

首先有企业支付宝账号,登录企业支付宝管理中心,登录不知道是不是安全校验太频繁,官网输入登录的时候特别卡特别慢,进入开发者中心,因为我选择的是网页&移动应用,要提供网址通过审核,审核通过就会出现下面的已上线应用

配置RSA密钥

下载官网中的RSA签名验签工具配置RSA2密钥,会生成应用公钥应用密钥,注意上面选择中有JAVA适用非JAVA适用的选项,因为我后端选择PHP所以我选择了非JAVA适用的PKCS1

[外链图片转存失败(img-VRu73Tmi-1567235993420)(https://user-images.githubusercontent.com/17243165/39089579-46ed64a8-45fd-11e8-9e12-cbf680e1021f.png)]

应用公钥上传应用信息中的开发配置中,还有开发配置中的应用网关不是必填项,可以选择不填,然后将旁边的支付宝密钥复制到后端的SDK中的config.php中alipay_public_key字段后,注意应用公钥是跟支付宝密钥完全不同的,不要弄错,不然一会儿验签会失败

[外链图片转存失败(img-ukhwOdkR-1567235993421)(https://user-images.githubusercontent.com/17243165/39089606-006b88ec-45fe-11e8-9d0d-3f03364a90a8.png)]

配置服务器

下载对应的SDK文件手机网站支付DEMO,这里根据对应的需求进行下载,有对应不同后端语言的,我下载的手机网站支付是有包含完整前后端的逻辑的DEMO

一般来说最简单的测试只需要配置config.php文件就可以了

<?php
$config = array (  //应用ID,您的APPID。'app_id' => "xxxx",//商户私钥,您的原始格式RSA私钥,也就是应用私钥'merchant_private_key' => "xxxx",//异步通知地址//这里最好用http 支付宝的异步的回调在免费https证书下会失败'notify_url' => "http://工程公网访问地址/alipay.trade.wap.pay-PHP-UTF-8/notify_url.php",//同步跳转//'return_url' => "http://mitsein.com/alipay.trade.wap.pay-PHP-UTF-8/return_url.php",//编码格式'charset' => "UTF-8",//签名方式'sign_type'=>"RSA2",//支付宝网关'gatewayUrl' => "https://openapi.alipay.com/gateway.do",//支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm//对应APPID下的支付宝公钥。注意是支付宝公钥,而不是应用公钥,支付宝公钥是基于上传的应用公钥生成的'alipay_public_key' => "xxxx",
);

这里注意两点支付宝公钥和应用公钥,不要粘贴错,这里需要的是支付宝公钥而不是应用公钥,还有点就是notify_url和return_url

return_url是支付成功后在客户端返回给客户看的回调地址,需要和开发配置中的授权回调地址对应,这是支付宝对支付的一种校验,这个地址建议不要写任何支付后的操作逻辑,因为用户有可能会在客户端切掉看不到而影响逻辑判断

notify_url是支付成功后支付宝通知给服务端的回调地址,这个地址注意要在公网可访问,因为支付宝会响应它,所以在本地测试中是不行的,必须上传到公网服务器,还有这里注意的是使用阿里云的免费https证书时候,这里如果地址是https会有一定失败率的,也就是说这里如果用了阿里云的免费https证书最好还是用回http地址响应,如果响应成功会echo出success这7个字符给支付宝,说明验签成功了,所以这个文件不要包含任何html代码,会影响结果输出,我们可以把支付后后端需要执行的逻辑放在这里,比如记录支付成功等

完整的交易逻辑

最重要就是 WIDout_trade_no 商品订单号,自己定义的,当我们发送支付到自己后端时候记录这个订单号,等支付宝验签回来成功后,对比信息中的订单号完成一个完整的支付逻辑,还要注意的是支付宝应该是只能用form表单提交支付请求,因为返回来的是一个form的代码,当然你也可以动态创建form来发送支付请求,但我个人建议还是直接静态form的形式来得方便

APP和网页支付

注意APP和网页都要各自通过签约才可以调用支付接口的,之前在这里浪费了很久时间一直测试都是报ALIN10146错误就是因为忘记还没有APP签约

APP内支付要真机连接查看返回的参数,注意后台PHP返回给APP的签名是不需要htmlspecialchars,不然这里会帮你把&&amp,这里正确是&,不然APP支付会报ALIN10146

// 注意:这里不需要使用htmlspecialchars进行转义,直接返回即可
echo $response;
//echo htmlspecialchars($response);//就是orderString 可以直接给客户端请求,无需再做处理。

AWS

亚马逊云服务器官网
可以把在本地ssh-keygen命令生成的Githubssh私钥上传上去,然后在创建服务器时候使用密钥对来生成钥匙,然后使用microsoft remote desktop for mac进行连接,可以导入rtp文件,配合本地的公钥来进行解析密码登录

阿里云,AWS,HTTPS和企业支付宝配置相关推荐

  1. 十分钟搞定阿里云免费https证书申请和配置

    准确的来讲是SSL证书,它可以将你的网站(服务)从http转换成https,实现网站或移动应用的身份验证和数据加密传输,简单的来讲就是使网站可信,防劫持.防篡改.防监听.前段时间做了个微信小程序要求网 ...

  2. 阿里云免费https证书申请与配置-为不同应用申请安全证书并配置子域名

    这里写自定义目录标题 https证书申请必要性 申请证书过程 配置证书 子域名证书的好处 https证书申请必要性 越来越多的第三方系统要求网站支持https访问,例如微信小程序访问系统后台,甚至域名 ...

  3. 关于NodeJS配置HTTPS服务、阿里云申请HTTPS证书

    最新一直在折腾小程序 我是前后台一起做,前台不必说是微信的小程序,后端的用的是NODEJS. 所以就说一下NODEJS如何配置HTTPS服务 我的NODE用的是Express框架 直接上代码: 最重要 ...

  4. 阿里云域名https证书(ssl证书)配置

    阿里云域名https证书(ssl证书)配置,nginx配置,亲测可用,记录下 首先进入到阿里云域名控制台,在域名控制台选择要配置的域名,并在操作栏点击"解析" 在域名解析点击更多下 ...

  5. 数据库诞生40年,阿里云AWS用技术推动第三次变革

    本文讲的是数据库诞生40年,阿里云AWS用技术推动第三次变革,数据库诞生于上世纪50/60年代.1961年美国通用公司研发第一个数据库系统DBMS诞生.1976年霍尼韦尔公司(Honeywell)开发 ...

  6. 阿里云自研新一代企业云数据库POLARDB背后的技术

    从2008年到2018年,阿里巴巴的数据库技术已经发展了10年的时间,10年的时间从AliSQL到RDS,再到自研POLARDB,阿里巴巴数据库技术得到了极大的提升.那么在阿里云自研新一代企业云数据库 ...

  7. Web服务器群集——公有CA构建阿里云服务器HTTPS

    公有CA构建阿里云服务器HTTPS 一.准备工作 1.1 服务器购买 1.2 域名购买及解析配置 二.SSL证书申请 三.服务器配置 四.登陆浏览器测试 一.准备工作 ECS服务器 域名 DNS HT ...

  8. 阿里云对腾讯企业邮箱设置域名解析

    之前申请了一个免费的腾讯企业邮箱,在设置腾讯企业邮箱的时候要设置自己的域名,而我之前使用的服务器是阿里云的服务器,所以就介绍一下阿里云服务器是如何设置对腾讯企业邮箱进行域名解析的. 1.进入阿里云的控 ...

  9. 阿里云短信申请流程以及配置

                                阿里云短信申请流程以及配置 一,        首先请登录阿里云官网申请账号,商用请申请企业号 ,个人学习只需个人账号就可满足,官网地址:htt ...

  10. 阿里云-网站部署,服务器环境配置(保姆级别)

    说在前头:因为在这个搭建的过程中,尝过了不少的苦头,流过了不少的心酸泪,所以我希望后来者们,能够好好的活着,心态炸了也要继续热爱生活./委屈巴巴 另外,一些我们使用的软件版本最最最好控制与项目同步.( ...

最新文章

  1. Ovirt 安装部署方法
  2. 刷新ImageNet最高分!谷歌大脑华人研究员发布超强Transformer
  3. python后端需要什么基础_python做后端好吗
  4. Jersey WebResource –标头不附加
  5. ios开发之--UIDocumentInteractionController的使用(实现更多分享服务)
  6. FineBI For Excel插件:助力地产业务人员节省50%报表制作时间
  7. windows WEB 服务器安全策略
  8. 运算除法的计算机函数,2、Python基础--除法、常用数学函数(示例代码)
  9. linux下搭建博客21天打卡Day6
  10. AOJ0118 Property Distribution【DFS】
  11. linux和windows下,C/C++的sleep函数
  12. VGG11、VGG13、VGG16、VGG19网络结构图
  13. Springboot JUnit5 Controller 单元测试
  14. 如何在python同一行内输入若干个数?
  15. 英语语法之形容词与副词
  16. 多元函数的泰勒展开公式
  17. 工地泥浆流出大量邵阳抽泥浆罐车清理路面泥巴
  18. k64 datasheet学习笔记1---概述
  19. 维基解密再爆猛料:CIA利用漏洞入侵全球数十亿个人电子设备
  20. 为什么要使用异常及java异常的使用--及js、php、golang的异常机制

热门文章

  1. MacOS High Sierra(10.13.6)上安装xcode10.2.1
  2. (纪录片)鸟瞰中国 China from Above
  3. 【信奥赛一本通】1378:最短路径(shopth)(详细代码)
  4. Win11启动修复无效怎么办
  5. Tomcat启动之后遇到“ran out of the normal time range, it consumed [2000] milliseconds.”?
  6. java实现面向对象的23种设计模式【超长预警,读完超过2小时】
  7. 理解Intel cpufreq intel_pstate driver的工作模式
  8. kali linux系统下安装 VMware Tools
  9. heroku常用命令示例(三)与AWS S3互动
  10. Centos7 SGE安装部署