我正在使用Python自动为Azure应用程序(AKS群集)创建App Service Cerficate。我需要进行的REST调用之一如下:
https://docs.microsoft.com/en-us/rest/api/appservice/appservicecertificateorders/createorupdate
这描述了创建App Service证书订单所需的调用,然后将其结果传递给REST调用以创建App Service证书。
我的问题是我无法从稀疏的文档中找出此REST调用的请求正文中需要什么。我已经建立了一个看起来像这样的结构:
request_body = {
"location" : "eastus",
"properties" : {
"autoRenew" : true,
"productType" : "StandardDomainValidatedSsl",
"distinguishedName": "???",
"csr": "???"
}
}
我一直无法弄清楚这最后两个字段需要什么。 csr字段被描述为“为此订单创建的最后CSR”,其中CSR指的是证书签名请求。这种措辞的方式意味着曾经有过CSR,但这是一个新的要求,在此我没有什么可填写的。如果我尝试将distguishedName和csr都保留为空白,则呼叫会抱怨。我尝试用openssl创建CSR并将csr字段设置为所创建的值,但似乎不喜欢它。我假设的distinquishedName字段应该类似于
"CN=mydomain.com,C=US,ST=California,..."
但是它总是抱怨我提供的任何东西都是无效的。
我已经进行了一些搜索,但找不到该REST调用所需的示例。如果有人可以指出一些示例代码或其他文档,我将不胜感激。谢谢。
彼得
答案 0 :(得分:1)
我最终确定此组合有效:
{
"location": "global",
"properties": {
"productType": "StandardDomainValidatedSsl",
"autoRenew": true,
"distinguishedName":"CN=mysubdomain.mydomain.com"
}
}
事实证明,不需要csr字段;由于进行此REST调用而返回一个。这只是证书创建过程的第一步。此时,请求处于待处理状态,仍然需要验证。
答案 1 :(得分:0)
CSR类似于:
internal var theLayout: UICollectionViewFlowLayout {
return (buttonsView.collectionViewLayout as? UICollectionViewFlowLayout)!
}
internal func prepareLayout() {
let spacing = buttonTheme.spacing * 2.0
// let theLayout = UICollectionViewFlowLayout()
theLayout.invalidateLayout()
buttonsView.frame = viewModel.frame
theLayout.itemSize = itemSize
theLayout.minimumInteritemSpacing = spacing
theLayout.minimumLineSpacing = spacing
buttonsView.contentInset = UIEdgeInsets(top: spacing, left: spacing, bottom: spacing, right: spacing)
// buttonsView.performBatchUpdates({
buttonsView.setCollectionViewLayout(theLayout, animated: true)
self.buttonsView.reloadData()
// }, completion: nil)
buttonsView.setCollectionViewLayout(theLayout, animated: true)
}