随着小程序的崛起,这个卑鄙仅支持https域名,让我们很多人遇到了麻烦!这里我们谈谈http升级https.
关于这个问题,像阿里云、华为云、腾讯云等官方网站的技术贴中,都提到了具体的配置操作,网上很少有人提到相关的实现原理。甚至这些大平台也拒绝技术性的探讨,直接有商业性的链接“56元/次包解决问题”,让我们程序狗们看了很伤感。在这里我说说其中的小技术,希望能帮到有需要的朋友。
首先说明一个点,http升级是针对域名的一个操作,也就是有相关的操作需要作用到域名上。那么域名需要操作,就肯定动到域名解析,服务器定向域名的操作!
1)目前国内域名市场整合比较严谨,想把http做成加密的https协议,肯定需要保证你的域名是备案过的域名。有对备案存在疑问的小伙伴可以留言发文,看到后本狗会回复。
2)你的域名是备案过的,接下来就是申请SSL证书,这个证书是在你的备案通过的运营商来办理的!(如:楼主的域名是阿里云购买的,服务器在华为云,所以备案通过华为云备案,也就是我的SSL是通过华为云来申请的!)
申请SSL服务,又包括一个二级域名的申请(免费),还有全域申请(收费还不便宜)。什么意思,举个栗子:有个域名abc.com,我可以申请erji.abc.com的SSL,也可以申请 abc.com所有域名的SSL。(注意:即使是免费的,貌似也是每年一次申请)
3)申请SSL后,会得到一个解析的操作,这个操作相关的审核机构(比如我用的华为云)就会给你一个解析的配置,把这个配置配置到你的域名解析出(前面说过了我阿里云买的域名,就需要在阿里云那里配置)
4)申请SSL审核通过后,会有三个秘钥的生成操作,这里官网也会有相关的介绍和说明,但是不是很明确。其实就是把ssl的配置打开,秘钥放到相关服务环境(我用的apache)配置文件可以读取的位置,然后创建出一个关于https的虚拟机,默认端口443,同步类似apache的虚拟机配置。
原理就是如此,具体配置参数可以参照相关官方的说明技术贴。遇到问题的欢迎来此留言。着急的就直接发我邮件联系
配置demo:
Listen 9443
<VirtualHost _default_:9443>
DocumentRoot "D:\php_web\tsdj"
ServerName hlpt.zhihuixlf.com
ServerAdmin 461953216@qq.com
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile "D:\phpstudy_pro\Extensions\Apache2.4.39\conf\cert\hlpt.zhihuixlf.com_public.crt"
SSLCertificateKeyFile "D:\phpstudy_pro\Extensions\Apache2.4.39\conf\cert\hlpt.zhihuixlf.com.key"
SSLCertificateChainFile "D:\phpstudy_pro\Extensions\Apache2.4.39\conf\cert\hlpt.zhihuixlf.com_chain.crt"
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "D:\phpstudy_pro\Extensions\Apache2.4.39\cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog "D:\phpstudy_pro\Extensions\Apache2.4.39\https_log\ssl_request.log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
phpStudy生成SSL:
<VirtualHost *:9443>
DocumentRoot "D:/php_web/hlpt"
ServerName hlpt.zhihuixlf.com
ServerAlias
SSLEngine on
SSLCertificateFile "D:/phpstudy_pro/Extensions/Apache2.4.39/conf/ssl/hlpt.zhihuixlf.com.crt"
SSLCertificateKeyFile "D:/phpstudy_pro/Extensions/Apache2.4.39/conf/ssl/hlpt.zhihuixlf.com.key"
SSLCertificateChainFile "D:/phpstudy_pro/Extensions/Apache2.4.39/conf/ssl/hlpt.zhihuixlf.comchain.crt"
FcgidInitialEnv PHPRC "D:/phpstudy_pro/Extensions/php/php5.2.17nts"
AddHandler fcgid-script .php
FcgidWrapper "D:/phpstudy_pro/Extensions/php/php5.2.17nts/php-cgi.exe" .php
<Directory "D:/php_web/hlpt">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
DirectoryIndex index.php index.html
</Directory>
</VirtualHost>