对于小程序request请求需要https域名、navigator.geolocation定位也需要在https环境下才可以生效等问题;
前端开发越来越需要https环境来来测试一下API接口和各类问题,今天来讲解一下怎么免费快速把普通的http网站配置升级成https协议。
首先向大家介绍一下HTTP和HTTPS的基本概念:
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
1.在此之前一定要申请一个http的域名,先申请个免费的SSL证书,我申请阿里云的免费SSL
阿里云免费SLL申请网站:(https://common-buy.aliyun.com/?spm=5176.7968328.1266638..5e971232StYwxz&commodityCode=cas&aly_as=RhwKyAvA#/buy)
2.免费购买之后,进入SSL证书管理控制台,找到刚才购买好的证书,点击证书申请,绑定自身的域名,填写相关联系信息,证书之类的设置就默认选项就OK,大概半个小时,会提示证书申请成功。
3.申请签发成功后,点击下载证书,请根据自身的服务器类型选择证书下载:
1.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2.
如果有疑问欢迎在留言处提问,会在第一时间回复!谢谢
相应服务器配置教程如下:
Tomcat服务器安装SSL证书
在证书控制台下载Tomcat版本证书,下载到本地的是一个压缩文件,解压后里面包含.pfx文件是证书文件,pfx_password.txt是证书文件的密码。
友情提示: 每次下载都会产生新密码,该密码仅匹配本次下载的证书。如果需要更新证书文件,同时也要更新密码。
申请证书时如果没有选择系统创建CSR,则没有该文件,请选择其它服务器下载.crt文件,利用openssl命令自己生成pfx证书。
1、PFX证书安装
以Tomcat7标准配置为例,假如证书文件名是a.pfx。
找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port=”8443”标签,增加如下属性:
1 keystoreFile="cert/200613478180598.pfx" 2 keystoreType="PKCS12" 3 #此处的证书密码,请参考附件中的密码文件或在第1步中设置的密码 4 keystorePass="证书密码"
Apache服务器安装SSL证书
在证书控制台下载Apache版本证书,下载到本地的是一个压缩文件,解压后里面包含_public.crt文件是证书文件,_chain.crt是证书链(中间证书)文件,.key文件是证书的私钥文件(申请证书时如果没有选择系统创建CSR,则没有该文件)。
友情提示: .crt扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要,修改成.pem等扩展名。
以Apache标准配置为例,假如证书文件名是a_public.crt,证书链文件是a_chain.crt,私钥文件是a.key。
操作步骤
-
在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为a.key;
-
打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”。
1 #LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) 2 #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/a_public.crt # 证书私钥配置 SSLCertificateKeyFile cert/a.key # 证书链配置,如果该属性开头有 '#'字符,请删除掉 SSLCertificateChainFile cert/a_chain.crt
4.重启 Apache。
apachectl -k stop apachectl -k start
Nginx/Tengine服务器安装SSL证书
在证书控制台下载Nginx版本证书。下载到本地的压缩文件包解压后包含:
- .crt文件:是证书文件,crt是pem文件的扩展名。
- .key文件:证书的私钥文件(申请证书时如果没有选择自动创建CSR,则没有该文件)。
友情提示: .pem扩展名的证书文件采用Base64-encoded的PEM格式文本文件,可根据需要修改扩展名。
以Nginx标准配置为例,假如证书文件名是a.pem,私钥文件是a.key。
-
在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为a.key;
-
打开 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 SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; # ssl_prefer_server_ciphers on; # location / { # # #} #}
- 将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :
server { listen 443; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/a.pem; ssl_certificate_key cert/a.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; } }
- :wq! 保存退出, /sbin/nginx -s reload 重启服务器即可
IIS服务器SSL证书安装
在证书控制台下载IIS版本证书,下载到本地的是一个压缩文件,解压后里面包含.pfx文件是证书文件,pfx_password.txt是证书文件的密码。
友情提示: 每次下载都会产生新密码,该密码仅匹配本次下载的证书。如果需要更新证书文件,同时也要更新密码。
申请证书时如果没有选择系统创建CSR,则没有该文件,请选择其它服务器下载.crt文件,利用openssl命令自己生成pfx证书。
1、IIS6
( 1 ) 证书导入
• 开始 -〉运行 -〉MMC;
• 启动控制台程序,选择菜单“文件”中的”添加/删除管理单元”-> “添加”,从“可用的独立管理单元”列表中选择“证书”-> 选择“计算机帐户”;
• 在控制台的左侧显示证书树形列表,选择“个人”->“证书”,右键单击,选择“所有任务”-〉”导入”, 根据”证书导入向导”的提示,导入PFX文件(此过程当中有一步非常重要: “根据证书内容自动选择存储区”)。
• 安装过程当中需要输入密码为您当时设置的密码。导入成功后,可以看到证书信息。
( 2 ) 分配服务器证书。
2、IIS7/IIS8
( 1 ) 证书导入
• 开始 -〉运行 -〉MMC;
• 启动控制台程序,选择菜单“文件”中的”添加/删除管理单元”-> “添加”,从“可用的独立管理单元”列表中选择“证书”-> 选择“计算机帐户”;
• 在控制台的左侧显示证书树形列表,选择“个人”->“证书”,右键单击,选择“所有任务”-〉”导入”, 根据”证书导入向导”的提示,导入PFX文件(此过程当中有一步非常重要: “根据证书内容自动选择存储区”)。安装过程当中需要输入密码为您当时设置的密码。导入成功后,可以看到证书信息。
( 2 ) 分配服务器证书
• 打开 IIS8.0 管理器面板,找到待部署证书的站点,点击“绑定”。
• 设置参数选择“绑定”->“添加”->“类型选择 https” ->“端口 443” ->“ssl 证书【导入的证书名称】” ->“确定”。
SSL 缺省端口为 443 端口(请不要随便修改。 如果您使用其他端口如:8443,则访问时必须输入:https://www.domain.com:8443)。