Let's Encrypt 免费泛域名证书(野卡)申请

今天Let's Encrypted泛域名证书终于正式上线,Let's Encrypted提供的泛域名证书跟其之前提供的单域名证书一样,90天续期一次,但是有一点不同的是,其泛域名证书的申请需要通过ACME V2来申请。
官方发布地址:
https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579
支持ACME的客户端:
https://letsencrypt.org/docs/client-options/

使用方法:

1.下载安装ACME.SH

curl https://get.acme.sh | sh

wget -O - https://get.acme.sh | sh

QQ截图20180315221159.png

2.使用

这里分两种方式,第一种是通过DNS进行txt解析,另一种方式是使用域名DNS解析服务商提供的API进行验证签发。

方法一、DNS解析方式签发

/.acme.sh/acme.sh  --issue -d  exmaple.com  -d *.example.com --dns

之后到域名DNS解析,按提示增加一条txt解析。
QQ截图20180315221651.png
待解析生效后,再回到Linux,执行下面语句:

/.acme.sh/acme.sh  --renew -d  exmaple.com  -d *.example.com

QQ截图20180315222041.png
这个图是失败的情况,可能是解析没生效的原因

方法二、使用域名解析服务商API签发

默认支持超过40家域名解析服务商的API,另外还可以自定义API,可以说世界上主流的服务商都已经支持了。国人常用的,如:

CloudFlare 
DNSPod.cn
CloudXNS.com
Aliyun
GoDaddy.com
ClouDNS.net

等。更多服务商,请查看:
https://github.com/Neilpang/acme.sh/blob/master/dnsapi/README.md
下面以DNSPod.cn为例,在树莓派上对dwz.nz这个域名进行签发:
1.打开https://www.dnspod.cn/console/user/security 。查看API Token,创建一个API Token。(这个API很重要请一定要保存)
2.使用API Token

export DP_Id="1234"
export DP_Key="sADDsdasdgdsf"

3.开始签发

/root/.acme.sh/acme.sh --issue --dns dns_dp -d dwz.nz -d *.dwz.nz

4.签发成功
QQ截图20180315223436.png
5.找到证书,证书位于/root/.acme.sh/dwz.nz
我们只需要用到 fullchain.cer 、dwz.nz.key 这两个文件
QQ截图20180315223743.png

总结:

通过DNS解析验证域名之后签发,和通过域名API进行签发的区别就是,第一种不能自动续签,到期后需要自己手动续签,第二种每60天续签一次。

详细的使用说明请参见官方文档(中文):
https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E

找回了曾经丢失了的记忆

昨天晚上心生好奇,想看一下自己的Twitter和Facebook分别是什么时候开始使用的,没能找到注册时间。看了下自己的动态,Twitter是2010年的时候,那时候Twitter在国内已经被屏蔽了,我是委托一个曾经在“首信易支付”工作联系我开通他们商户服务的人帮我开通的,那时候她正好出国留学,而且和她还联系着。而Facebook是我自己注册的,从时间线上看,至少是2006年之后,而且我在时间线上发现了我曾经同步到Facebook上的博文,让我感到很吃惊,有种找到了丢失了的记忆的感觉。
算一下时间,我应该是从2006年的时候就开始写博客了,那时候应该是在bokee上写的,印象中还有其他的博客网站,但是现在已经记不住了。在2007年的时候,我注册了自己的域名dl2008.cn,自己用boblog搭建了个博客,放在免费空间上。
在2007年及之前的时候,非常流行免费空间。还记得那时候用的比较多的几个免费空间,一个是展速,一个是河南常来网,还有主机屋等等。免费空间都有一个特点,就是很不稳定,经常无法访问,数据丢失。而我当时应该是使用了同步插件,每次写完文章,都会自动推送到Facebook上。
再后期,算下时间应该是在2007年4月份,我成为了一个Oneman主机商的一个小代理,也开始了自己的IDC之路,当时使用的域名是24idc.net,而且业务做的非常好,应该是IDC行业的红利期,至少我有零花钱了。但是福兮祸所伏,到当年的10月份的时候,中央开什么会我记不住了,当时全国上下IDC机房严打,关停了很多机房,全国上下一片鸡飞狗跳,也死了一大片站长少了上千万小网站跑了成千上万的Oneman。很不幸的是,我的上级Oneman也跑路了,服务器被关停,老板联系不上。没办法,我从自己的生活费中省出钱来,另外当时认识的一个朋友名字叫郭世顺,他也做IDC,他出了机器,我出少部分钱,把我的客户转移到他那,我才算渡过了当时的难关。
而我的博客在这些年,也换过多次,多到什么程度,连我自己也记不清到底换过多少次每次都是怎么换的,也记不清到底曾经用过多少个域名搬过多少次家用过哪些程序。
只能记得第一个域名是dl2008.cn,而我也是对这个域名最有感情,用了三年,而且直到现在闲置的但依然续着费;还用过5dblog.me,域名注册的比较早,但是当时没有什么域名注册经验,没能注册一个比较经典的域名;还用过lofter.ca和coresky.org,直到现在用的qingtai.org。
而经常颠来倒去换博客程序,带来的最大的问题就是,数据的转换,而且必然会造成数据的丢失。所以,现在的这个博客,我只有2010年之后的文章了。
而昨天在Facebook上,意外的发现了我2007到2009年之间的大部分博文,我非常激动,就像是找到了初恋写给我的情书一样。连夜的把这些博文转载到了这里,就当成是原来博客的延续吧。
看着以前写的博客,就像是看着傻逼写的文章一样,没有任何美感,当然不比现在的差多少,但是还是比现在幼稚的多,毕竟已经过去了十多年了,无论是思想还是经验,都在成长。

(完)

记2018年大连新年登高徒步大会活动

2018年1月1日,参加了大连新年攀新高全民健身活动,而今年大连是作为2018全国新年登高健身大会的分会场。活动地点位于大连金龙寺森林公园,只有906路车能直接到达活动地点。
我像往常上班一样,早晨6点起床,收拾妥当,在6点50分的时候,坐上开往906起点站兰花小区的公交车,大概在7点05分的时候,到达兰花小区。
蒙蒙亮的早晨
蒙蒙亮的早晨

906路车站早早的就有很多人在排队了,基本上都是去参加这次活动的人,这些人里面,大部分都是50岁以上的,我应该是最年轻的了吧。对于老年人参加这类活动,我除了发自内心的钦佩,再无他。
正在排队等待906路公交车的人们
正在排队等待906路公交车的人们

坐上906路车,当然是没座的了,哪怕是有座我也得让给这些老人们,虽然他们身体健硕,但是毕竟我还是年轻人。在车上简单的吃了点早餐,从家里带的两片面包和一盒牛奶。大概50分钟后,到达金龙寺,此时正好早上8点。
下车地点
下车点正好为大连跨境电子商务试验区

IMG_20180101_075507.jpg
公园入口

从公园入口到达公园的大门口,我是从旁边的木栈道走的,冬日的清晨,木栈道上有一层薄薄的霜,走上去有点滑,如果走太快或者不小心,就可能会滑倒。目前是火灾的高发期,在沿途随处可见关于森林防火的标语。
IMG_20180101_075653.jpg
从公园入口去往公园大门口

IMG_20180101_075701.jpg
关于防火的标语

IMG_20180101_075723.jpg
幽幽的木栈道,走着很惬意

到达停车场时,可以看到相关人员在这里设立了一个卡口,不允许车辆再往上面走了,引导车辆停到停车场。在正常开园的时候,车可能是可以开上去吧,我也是第一次来这里,具体不是太了解。
IMG_20180101_084308.jpg
停车场处设立卡口,引导停车

沿着木栈道继续前行,也不要错过沿途的好风景,随手再拍几张。没有带相机,也没有专业的摄影技巧,就看个影吧。
IMG_20180101_080037.jpg
沿途景致

终于到达活动现场,找到自己的领物处,我的编号是D3359,太靠后了,只有背包,没有号牌,不过这也不影响我正常参赛。
IMG_20180101_080155.jpg
到达活动现场

IMG_20180101_081252.png
报名短信

IMG_20180101_081220.jpg
领取的装备

之后便是无聊的等待,和看一些主办方组织的打发时间的活动,另外就是新年寄语。
IMG_20180101_085944.jpg
在祈福墙上留言的情侣

IMG_20180101_082610.jpg
二十中学生表演前的热身

总算要开始了,开始之前,主持人(大连电台的一个主持人,名字我给忘了,没听过她的节目)上台开始主持整个大会。
IMG_20180101_090419.jpg
大会总算开始了,主持人上台开始主持

IMG_20180101_090747.jpg
二十中的学生们表演健身操

IMG_20180101_091203.jpg
某击剑俱乐部表演击剑

IMG_20180101_092345.jpg
领导上台并讲话

在领导讲完话之后,也到了开始时间,发令枪(号)响,正式开始比赛。刚开始的时候非常拥挤,上千人拥进公园的大门,浩浩荡荡的沿着赛道向公园内走去。
IMG_20180101_093034.jpg
开赛后进场

这次大会分两个赛程,一个是半程赛,到知青点后领取完赛证书,之后原路返回;另一个是全程赛,到达知青点之后,领取完赛证书后,继续前行,到达第二个打卡点盖章后,沿赛道往前走,直到终点。
第一阶段非常轻松,因为并没有山坡之类的,我走的很快,超过的人很多。当然,同时我也没忘记拍照。大概在10点04分的时候到达知青点,10点06分领取了完赛证书。之后上了个厕所,耽搁了点时间。
IMG_20180101_093534.jpg
浩荡的队伍

IMG_20180101_093552.jpg
沿途景色

IMG_20180101_093925.jpg
被我超越的人们

IMG_20180101_100408.jpg
知青点

IMG_20180101_100624.jpg
领取完赛证书

如果是半程赛的话,这时候就可以拿着证书到处游山玩水了,而我明显不打算只走个半程赛,那也太对不起我起这么早赶到这么远来的这一趟了,必须走完全程。当时,这时候我也不知道前面的路有多险恶,不过无论前面是怎样的,都要坚持完成,当然也要量力而行,如果感觉到不大行的话,就慢点走。
按着指示牌,前面依次是:孔雀园、五间房、老座山。接下来的第一站应该是孔雀园了,当然很快就到了孔雀园,但是也无心去逗孔雀了,我长的这么丑,也无法让孔雀为我开屏。
IMG_20180101_100652.jpg
指示牌

IMG_20180101_100923.jpg
孔雀园

整个徒步的难点就在这个老座山了,虽然是顺着石板路和台阶走,但是太陡,还要保持速度,由于长时间没有过锻炼,很快就气喘吁吁了,而且感觉血压上升心跳过快顶的头难受。调整了下呼吸,同时把速度保持在了一个自己能承受的范围内,把参赛时领取的饮料拿出来慢慢的喝掉,感觉好多了。在这段路上,我就有一种预感,我可能要拿到名次了。坚持了下去,总算要到山顶了。
IMG_20180101_102006.jpg
艰难登山的人们

IMG_20180101_102352.jpg
山上远眺

IMG_20180101_102754.jpg
马上到山顶了

IMG_20180101_102907.jpg
山上景色

到达山顶之后没做停留,争分投秒下山,很快到达第二个打卡点,在没人打卡的那人那里盖个章,继续前行,第二次打卡时间在10点30分,从知青点到打卡用时20分钟。
IMG_20180101_103025.jpg
下山坡,太轻松

IMG_20180101_103107.jpg
完成第二次打卡的美女

IMG_20180101_103114.jpg
完成第二次打卡

IMG_20180101_103336.jpg
回望走过的路

IMG_20180101_103518.jpg
山中景致

IMG_20180101_103525.jpg
山中景致

后面的就太轻松了,全是下山坡和平路,很快就恢复体力了,而且从第二打卡点之后,人就非常少了,而且距离相差的也挺远,不能像在上坡的时候一下可以超过好几个人,但是一次超过一两个人,要更轻松一点。

IMG_20180101_105231.jpg
快要完成全程赛的老爷子

大概在11点07分,到达终点,名次258名,历时97分钟,得了块我有生一来第一块体育类的奖牌。
最后等到前300名结果出来之后,我们一起合了影。
IMG_20180101_110558.jpg
即将到达终点

IMG_20180101_110932.jpg
奖牌及名次

20180101234617.jpg
获奖者集体合影,看看哪个是我?

之后,又走了大概3公里,去坐的1101路车回的家。
(完)

【原创】极夜KM910智能遥控系统体验

很有幸成为极夜KM910智能遥控系统的体验用户,11月25日发的货,在昨天的时候,就已经有极友收到货了,而我还在焦急的等待。直到今天上午上班的时候,收到短信,让到公司楼下车库的菜鸟驿站取件,我就知道是等待的东西到了,这快递还是很给力的,从南京到大连用了3天的时间。
这次活动送出的是第二代遥控系统,第一代遥控系统我没使用过,与第一代相比有哪些改进,我这里也无法给出。
快递.jpg
图1 拿到快递后赶紧来一张

拿到公司之后,迫不急待的打开包装,虽然外面只是一个快递袋子装的,但是里面还用的气泡袋子包了一层,能够保护主机不被伤害。
保护袋.jpg
图2 内部的保护袋

打开保护袋,可以看到一个非常精致的小盒子,简约大气、端庄文雅。盒子有一点点的压痕,没关系,瑕不掩瑜。
盒子.jpg
图3 精美的包装盒

盒子-2.jpg
图4 精美的包装盒
盒子的背面,是产品的相关参数和公司联系方式等基本信息。我们看到的产品参数如下:

品名:智能遥控系统KM910
按键数量:63键  重量:130g
触摸板:多点触控
传输及控制:2.4G RF 无线射频技术
传感器:3轴陀螺仪+3轴加速计

盒子-3.jpg
图5 盒子背面的基本信息

打开盒子,可以看到里面有:主机1个,接收器1个,USB线1条,说明书2份(中、英文各1份)。
内-1.jpg
图6 开盖有奖

遥控器拿在手里,很有份量,可能是有电池的缘故。
主机-1.jpg
图7 主机

主机.jpg
图8 主机

可以看到,接收器比较大,如果能做的如无线键鼠那样小巧就更好了,如果可以支持蓝牙和无线双模,那就更加完美。
接收器.jpg
图9 接收器

打开包装袋,拿出主机,可以看到做工不错,按键手感舒适。不知遥控器的代工是哪个厂家,但从做工上看,是对得起129元的零售价的。
主机-2.jpg
图10 主机主操作区

主机特写-1.jpg
图11 主机主操作区细节

主机特写-2.jpg
图12 主机主操作区细节

主机特写-3.jpg
图13 主机主操作区细节

主机背面是键盘和触控板,在这么小的面积下,布局43个键,打字是很不方便的,有打算用这个进行文字录入的,可以打消这个念头了。打字的时候,必定需要双手分别握住两端,用大拇指在键盘上打字,而右边却上触控板,影响右手的输入操作,而且当使用触控板的时候,也会很不方便。当然,也可以说她本就不是用来打字的,带个键盘只是为了在必要的时候可以应下急。这个说法当然没问题,但是既然已经带这功能了,为什么不能设计的更合理一些呢?
主机-3.jpg
图14 主机背面键盘区域

主机-5.jpg
图15 主机背面键盘区域

主机特写-4.jpg
图16 主机背面键盘特写

主机特写-5.jpg
图17 主机背面触控板

因为没人给拍照,下面就只能给出单手持键盘,看下效果吧,体会一下。
单手持.jpg
图18 手持键盘

再看下两侧,左上是遥控器的开关,右下是microUSB接口,说明书中并没有说这个接口是做什么用的,我的理解是只能用来充电,是否能编程还需要验证。
主机特写-6.jpg
图19 左上的主机开关

主机特写-7.jpg
图20 右下的USB充电接口

下面,我们来看一下电池。在主机正面的下方,可以把面板打开,就能看到里面的电池了。打开之后可以看到,主机使用的是BL-5B电池,但是选用的是300mAh的,阿里巴巴上批发价格大概在2元以下,续航能力待验证。
电池-1.jpg
图21 电池

从英文说明书上看,图片上没有印有极夜的Logo,感觉让,这个遥控器应该并不是极夜自行设计的,而是购买的工厂的现成的方案,之后贴的牌子。
说明书.jpg
图22 中、英文说明书

以上主要说了下外观方面,后面说下操作体验。
要遥控电脑,首要的当然是操作方便,而极夜的这款智能遥控器带的飞鼠功能,确实是方便了很多。
飞鼠.mp4
视频1 飞鼠操作

如果是晚上使用的话,背光灯是少不了的,而她提供了7种颜色的灯光可以选择。
背光灯.mp4
视频2 背光灯选择

我尝试输入了几个文字,本来是要输入“极夜智能遥控系统KM910”,但是在输入第一个字“极”的时候,发现“S”键失灵(因为我使用的是五笔,极的五笔码是SE),无法完成这个任务,可能是因为我的运气不好吧,希望类似情况不要太多。另外一个问题是,按键非常容易连击,比如输入“遥控”(五笔码ERRP),会输入成“ERRR”。
另外,发现少了Ctrl键,而且不支持编程,在需要使用Ctrl键的时候,也无法使用其他键来代替。如果能支持“www”键或“@/com”键切换为Ctrl键的话,会更好一些。

就今天体验到的这些,总结一下:

优点:
功能丰富;做工不错;性价比比较高。
缺点:
键盘布局不合理;缺少Ctrl键;电池容量小;质量把关不严。
希望改进:
支持双模,接收器可以做的更小一点;键盘重新布局,使适合手持录入。

第一次写评测,毫无头绪,想到哪写到哪,还望多包涵。

时间不早了,已经到半夜时间了,其他更多的体验我后续再补充。

2017年11月29日更新:
关于坏了个按键的问题,已经联系他们了,给换个键盘,这几天我给快递过去,换完键盘之后再继续写。

Mongodb Driver for C#/.Net的增删改查

我之前在《.Net Core系列教程(三)——使用Mongodb》中,说过在.Net Core下,怎样使用Mongodb数据库,这篇文章就作为它的延伸,来说下在.Net中,怎样使用Mongodb Driver来进行最常用的增、删、改、查操作。当然,我这个的环境是在.Net Core下,在其他版本的.Net环境下,相差不大。我这实例中使用的驱动是2.4.0版的,而现在最新版本是2.4.4。
闲言少叙,还是撸代码吧。
先按《.Net Core系列教程(三)——使用Mongodb》文章中的方法,设置好数据库的相关配置,之后取得数据库:

    var db = client.GetDatabase("database");

这个代码可以按照自己的实际需求来写,比如这样:

    var db = client.GetDatabase(MongoUrl.Create(settings.Value.MongodbConnection).DatabaseName);

取得一个collection,这里以news表为例,Models.News是News的实例类:

    var collection = db.GetCollection<Models.News>("news");

我们再准备一下具体要操作的数据:

    var request=new Models.News(){title:"新闻测试",body:"这里是新闻测试的内容",author:"张三","status":True};

这些前提准备好了之后,再开始具体的数据库操作了

1.增加操作:

    collection.InsertOne(request);

2.修改操作:

    var query = new BsonDocument("_id", new ObjectId(id));
    var dict = new Dictionary<string, object> {
        { "title",request.title},
        { "body",request.body},
        { "author",request.author},
        { "status",request.status}
    };
    var data = new BsonDocument(dict);
    collection.UpdateOne(query, new BsonDocument("$set", data));

3.查询操作:

    //查列表
    int page=1;  //当前页号
    int pagesize=50;  //每页50条记录
    BsonDocument query = new BsonDocument(){"author":"张三","status":True};
    int total = Convert.ToInt32(collection.Count(query));  //数据总记录数
    var list = collection.Find(query).Sort(new BsonDocument("_id", -1)).Limit(pagesize).Skip((page-1)*pagesize).ToList();  //带分页查询,按_id倒序排序
    
    //查单条
    BsonDocument query = new BsonDocument("_id", _id);
    var data = collection.Find(query).FirstOrDefault();

4.删除操作:

    ObjectId _id = new ObjectId(id);
    collection.DeleteOne(new BsonDocument("_id", _id));

以上只是其中几个比较简单的用法,其实还有很多实现方法,比如异步方法、插入多条等等,其他的等有时间再整理吧。

分类

最新文章

最近回复

归档

标签云

C# .net core asp.net 情感 SQL mongodb sql server EasyUI linux 身份验证 typecho .net sql注入 安全 kms 激活 MVC https IIS 高并发 IE 坑爹 服务器 mysql Combobox Datagrid 口语 数据抓取 远程下载

其它