首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JACL脚本在modifySSLConfig上选择所有别名

使用JACL脚本在modifySSLConfig上选择所有别名
EN

Stack Overflow用户
提问于 2018-09-11 11:47:20
回答 3查看 436关注 0票数 1

我希望在我的所有别名上编辑所有的SSL配置。我找到了一些资源来做这件事,到目前为止我的代码是

代码语言:javascript
复制
$AdminTask modifySSLConfig {-alias NodeDefaultSSLSettings -sslProtocol TLSv1.2}
$AdminConfig save

我希望能够在我的服务器上找到所有的别名,但我不知道如何做到这一点。

任何关于如何做到这一点的想法或线索都会有所帮助。谢谢。

编辑:

现在我可以通过使用以下代码找到所有SSL信任。

代码语言:javascript
复制
[$AdminTask listSSLConfigs {-scopeName (cell):Node01Cell:(node):Node01}

我的下一个问题是,如何从那里提取别名字符串?我只需要别名,这样我就可以在另一个变量上替换它,这样我就可以对此使用foreach循环了。

代码语言:javascript
复制
$AdminTask modifySSLConfig {-alias ${aliasvariablegoeshere}  -sslProtocol TLSv1.2}

编辑:

代码语言:javascript
复制
set hold [list [$AdminTask listSSLConfigs {-scopeName (cell):Node01Cell:(node):Node01}]]
foreach aliasList [$AdminConfig show $hold] {
    foreach aliasName [$AdminConfig show $aliasList] {
        set testTrim "alias "
        set test5 [string trimleft $aliasName $testTrim]
        $AdminTask modifySSLConfig {-alias ${test5} -sslProtocol TLSv1.2}
    }
}
$AdminControl save

我已经这样做了,并且能够只提取别名,并且能够像我想要的那样把它放在变量上,但是它给了我一个无效的参数错误。你知道为什么会发生这种事吗?我怎么能解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-09-18 03:24:59

我已经设法使它工作,似乎无论我做什么,我都不能使别名,我必须是一个有效的参数,所以我把整个事情作为一个字符串命令。这是我的密码。

代码语言:javascript
复制
foreach aliasList [$AdminConfig list SSLConfig] {
    foreach aliasName [$AdminConfig show $aliasList alias] {
        set strTrim "alias "
        set strFinal [string trimleft $aliasName $strTrim]
        set command "-alias $strFinal -sslProtocol TLSv1.2"
        $AdminTask modifySSLConfig $command
        puts saved
    }
}
$AdminConfig save
票数 0
EN

Stack Overflow用户

发布于 2018-09-12 07:07:26

您可以使用以下方法列出所有SSL信任:

代码语言:javascript
复制
AdminTask.listSSLConfigs('[-all true]')

供JACL使用:

代码语言:javascript
复制
$AdminTask listSSLConfigs {-all true}

然后遍历列表并更改您需要的任何内容。而不是-all,您可以提供范围,例如:-scopeName (cell):localhostNode01Cell:(node):localhostNode01

有关SSLConfig命令的详细信息,请查看用于SSLConfigCommands对象的AdminTask命令组

更新:

一般来说,这应该是可行的:

代码语言:javascript
复制
foreach aliasList [$AdminTask listSSLConfigs {-scopeName (cell):PCCell1:(node):Node1}] {
    puts $aliasList  
    set splitList [split $aliasList " "]
    puts $splitList 
    set aliasname [lindex $splitList 1]
    puts $aliasname

    $AdminTask modifySSLConfig { -alias $aliasname -sslProtocol TLSv1.2 }

}

但我不能让$AdminTask正确地解决$aliasname的问题.强烈建议您切换到jython。;-)

票数 1
EN

Stack Overflow用户

发布于 2021-05-07 20:53:10

我为Jython找出了答案:

代码语言:javascript
复制
import sys
import os
import string
import re

#$HOME/IBM/WebSphere/AppServer/bin/wsadmin.sh -lang jython -f $HOME/tls12.py
#Updates Websphere security to TLSv1.2

AdminTask.convertCertForSecurityStandard('[-fipsLevel SP800-131 -signatureAlgorithm SHA256withRSA -keySize 2048 ]')
AdminConfig.save()
AdminNodeManagement.syncActiveNodes()

sslConfigList=AdminTask.listSSLConfigs('[-all true]').splitlines()
for sslConfig in sslConfigList:
  sslElems=sslConfig.split(" ")
  AdminTask.modifySSLConfig (['-alias',sslElems[1],'-scopeName',sslElems[3],'-sslProtocol', 'TLSv1.2', '-securityLevel', 'HIGH' ])

AdminConfig.save()
AdminNodeManagement.syncActiveNodes()

在此之后,还应该使用以下内容更新所有ssl.client.props文件:

代码语言:javascript
复制
com.ibm.ssl.protocol=TLSv1.2

在所有节点上重新启动部署管理器并强制执行手动syncNode,例如:

代码语言:javascript
复制
~/IBM/WebSphere/AppServer/profiles/*/bin/syncNode.sh <DeplymentManagerHost> <dmgr port=8879> -username <username> -password <password>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52275163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档