逛了一圈,大家都是用激活码
激活的,没有找到一个是用域名服务激活的(如果有,请指正我),所以找了一圈,搞个在激活的玩玩
前置要求
- ja-netfilter
- 自签一张证书
Issuer
是jetProfile CA
,Subject
是随便
的证书 A - 自签一张证书
Issuer
是License Servers CA
,Subject
是ServerUid.lsrv.jetbrains.com
的证书 B - 上面的 ServerUid 非常关键
在线激活访问的 url 是
https://jetbra.in/rpc/obtainTicket.action?machineId=b4225b32-fb29-4635-bcef-9ec76dddbc63&salt=1715425803562&userName=sparkles&buildNumber=2023.2.3+Build+PS-232.10072.32&clientVersion=14&hostName=Mac.local&&productCode=PMATERIALUI&productFamilyId=PMATERIALUI&salt=1715425804780&secure=false
响应内容
<!-- SHA1withRSA-{下面 xml 主体内容的签名 }-{证书 B } -->
<ObtainTicketResponse>
<action>NONE</action>
<confirmationStamp>{时间戳}:{客户端提交的machineId}:SHA1withRSA:{对({时间戳}:{客户端提交的machineId})的签名 的}:{证书 B}</confirmationStamp>
<leaseSignature>SHA512withRSA-{对下面「serverLease」的值进行签名}-{证书 A}</leaseSignature>
<message/>
<prolongationPeriod>63462000</prolongationPeriod>
<responseCode>OK</responseCode>
<salt>{客户端的salt}</salt>
<serverLease>4689898213000:{ServerUid}</serverLease>
<serverUid>{ServerUid}</serverUid>
<ticketId>20</ticketId>
<ticketProperties>licensee=sparkles flam licenseType=5</ticketProperties>
<validationDeadlinePeriod>-1</validationDeadlinePeriod>
<validationPeriod>71829000</validationPeriod>
</ObtainTicketResponse>
好了这样就可以了 是不是非常简单
自签证书可以看我上一篇 golang 生成证书
下一篇就是 用 go 语言实现上面的代码