设为首页 收藏本站
查看: 1672|回复: 0

[经验分享] 配置WebLogic Server 8.1的Node Manger和SSL(转)

[复制链接]

尚未签到

发表于 2017-2-18 08:58:48 | 显示全部楼层 |阅读模式
 注意:由于WebLogic Server7和WebLogic Server8的设置有较大不同,此文只对WebLogic Server 8.1 有效。WebLogic Server 7的配置,也将在近期推出。  对大多数的初学者而言,WebLogic的文档,虽然详细,却有很多让人困惑不解地方,笔者通过一段时间的实践,有一些心得,在此与大家分享
  在实际的应用中,不同的WebLogic Server实例会分布在不同的机器,甚至不同的地域。所以,如何有效的管理各个Managed Server实例,成为了重点。在同一个Domain中,不同机器上的Managed Server可以用相应机器上的NodeManager来管理(NodeManager本身也是一个线程,用来控制Server的生命周期的。)
  本文将用1个Admin Server和2个Managed Server做例子,因为这个是最简单的Cluster形式。Cluster和本文没有什么直接关系,只是作为以后例子的铺垫而已。不过鉴于Admin Server和Managed Server之间的管理方式和Cluster的是一样的,所以也就把Cluster的配置加入本文章。详细原因,见附录B。
  配置大体过程如下,一共6个步骤:
  A. 建立相应的Domain。设定Admin Server。
  B. 得到 Server的根证书,密钥。并将它们加入KeyStore。
  C. 配置WebLogic Server的KeyStore和SSL设置,代替默认的Demo 设置。
  D. 配置 Managed Server机器上的NodeManager。
  E. 检查相应设置是否正确后,启动所有Server,完成设置。
  F. 用一个Web Application的部署检验以上设置。


A. 建立相应的Domain。设定Admin Server和 Managed Server。

  1. 首先,建立相应的Domain。设定相应的Admin Server和Managed Server。(详细设置步骤,见最后附录A)。
  (详细配置资料)
Domain: Security

Cluster: MyCluster

Type

Admin

Managed

Managed

Server Name

Cake

FinalFantasy

Armageddon

IP

192.168.0.9

192.168.0.1

192.168.0.2

Machine

(空)

Desktop

Laptop

User

William

William

William

Password

Password

Password

Password


注1. 相应的IP设置,请按照实际情况更改。这里的IP,没有关系的,因为实际应用中,都用DNS名字代替了。见注5。  注2. 如果每个Server都监听不同的Port的话,三个Server可以在同一台机器上。不建议使用LoopBack的网卡。
  注3. 不管多少个Managed Server,也不管他们是在同一台机器还是多台机器,都要设置为同一个Domain。
  注4. Admin Server,没有必要配置Machine。所以不用加入任何一个Machine。
  注5. Server Name,也是相应的DNS,可以通过修改 %WINDOWS_HOME%\System32\Drivers\Etc\Hosts 文件,达到同样效果。见文件1.1。
  注6. ManagedServer机器上不用配置Domain,只需要配置NodeManager就可以了。
文件1.1
  # Copyright (c) 1993-1999 Microsoft Corp.
  #
  # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
  #
  # This file contains the mappings of IP addresses to host names. Each
  # entry should be kept on an individual line. The IP address should
  # be placed in the first column followed by the corresponding host name.
  # The IP address and the host name should be separated by at least one
  # space.
  #
  # Additionally, comments (such as these) may be inserted on individual
  # lines or following the machine name denoted by a '#' symbol.
  #
  # For example:
  #
  # 102.54.94.97 rhino.acme.com # source server
  # 38.25.63.10 x.acme.com # x client host
  127.0.0.1 localhost
  192.168.0.9 Cake
  192.168.0.2 Armageddon
  192.168.0.1 FinalFantasy
  修改完后,记得用ping试试,ping通过了,才好进行下一步。不同机器的话,请保持DNS名字一致。
  2. (可选)修改Admin Server的启动脚本 (Security\startWebLogic.cmd)。
  set PRODUCTION_MODE=false
  set WLS_USER=William
  set WLS_PW=password
  set MEM_ARGS=-Xms256m -Xmx256m
  3. 修改完Server的启动文件后,请先把Admin Server启动一次,保证已经建立正确。
  4. 完成第一大步。
  
B. 得到 Server的根证书,Server证书,密钥。并将它们加入KeyStore。
  接下来,我们需要得到配置SSL需要的文件。如果你有银子的话^_^,可以去VeriSign申请一个正规的证书。不过,本例将用WebLogic自带的CertGen工具生成相应的证书以及密钥。并加入KeyStore中。相应的概念及工具的用法,请读者自行查资料。
  1. 将weblogic.jar加入classpath。
  2. 建立一个临时目录,将 BEA\WebLogic\server\lib下的CertGenCA.der和CertGenCAKey.der拷贝到该目录。
  3. 运行以下命令,将生成的myKeyStore.jks拷贝到相应的3个Domain目录。
  keytool -noprompt -import -trustcacerts -alias CA -file CertGenCA.der -keystore myKeyStore.jks -storepass password
  java utils.CertGen password CakeCert CakeKey export Cake
  java utils.CertGen password FinalFantasyCert FinalFantasyKey export FinalFantasy
  java utils.CertGen password ArmageddonCert ArmageddonKey export Armageddon
  copy /b CakeCert.pem + CertGenCA.pem CakeCertChain.pem
  copy /b ArmageddonCert.pem + CertGenCA.pem ArmageddonCertChain.pem
  copy /b FinalFantasyCert.pem + CertGenCA.pem FinalFantasyCertChain.pem
  keytool -import -alias CakeCert -file CakeCert.pem -keypass password -keystore myKeyStore.jks -storepass password
  keytool -import -alias ArmageddonCert -file ArmageddonCert.pem -keypass password -keystore myKeyStore.jks -storepass password
  keytool -import -alias FinalFantasyCert -file FinalFantasyCert.pem -keypass password -keystore myKeyStore.jks -storepass password
  java utils.ImportPrivateKey myKeyStore.jks password CakeKey password CakeCertChain.pem CakeKey.pem
  java utils.ImportPrivateKey myKeyStore.jks password ArmageddonKey password ArmageddonCertChain.pem ArmageddonKey.pem
  java utils.ImportPrivateKey myKeyStore.jks password FinalFantasyKey password FinalFantasyCertChain.pem FinalFantasyKey.pem
  java utils.ValidateCertChain -jks CakeKey myKeyStore.jks password
  java utils.ValidateCertChain -jks FinalFantasyKey myKeyStore.jks password
  java utils.ValidateCertChain -jks ArmageddonKey myKeyStore.jks password
  最后的3个步骤,是检验Certificate的。其中第一个步骤输出应该是:
  Cert[0]: CN=Cake,OU=FOR TESTING ONLY,O=MyOrganization,L=MyTown,ST=MyState,C=US
  Cert[1]: CN=CertGenCAB,OU=FOR TESTING ONLY,O=MyOrganization,L=MyTown,ST=MyState,C=US
  Certificate chain appears valid
  最后一句话最重要,代表了证书链是正确的!
  这个步骤,是最重要的。确定所有语句的运行都是正确的。
  4. Admin机器上,将keystore文件拷贝到BEA\user_projects\domain目录。
  5. Managed机器上,将keystore文件拷贝到BEA\weblogic\common\nodemanager目录。
  6. 完成步骤B。
  
C. 配置WebLogic Server的KeyStore和SSL设置,代替默认的Demo 设置。
  1. 启动Admin Server,进入Console(http://Cake:8001/console/)。展开Servers,单击Cake,在右边的配置栏中(Configuration Tab),选择Keystores & SSL。


2. 单击Change,选择Custom Identity and Custom Trust,单击Continue,填入以下值。(一切以文字为准,抓图只是示范)

  Custom Identity:
  Custom Identity Key Store File Name: myKeyStore.jks
  Custom Identity Key Store Type: JKS
  Custom Identity Key Store Pass Phrase: password
  Confirm Custom Identity Key Store Pass Phrase: password
  Custom Trust
  Custom Trust Key Store File Name: myKeyStore.jks
  Custom Trust Key Store Type: JKS
  Custom Identity Key Store Pass Phrase: (空)
  Confirm Custom Identity Key Store Pass Phrase: (空)
  3. 单击Continue,准备对 Review SSL Private Key Settings 进行设置。
  Private Key Alias: CakeKey
  Passphrase: password
  Confirm Passphrase: password
  4. 设置Armageddon Server和 FinalFantasy Server。
  步骤如上,展开Servers,单击相应的Server,去 Keystores & SSL,然后配置。
  以下是配置用到的值。
  Armageddon Server:
  Custom Identity:
  Custom Identity Key Store File Name: myKeyStore.jks
  Custom Identity Key Store Type: JKS
  Custom Identity Key Store Pass Phrase: password
  Confirm Custom Identity Key Store Pass Phrase: password
  Custom Trust
  Custom Trust Key Store File Name: myKeyStore.jks
  Custom Trust Key Store Type: JKS
  Custom Identity Key Store Pass Phrase: (空)
  Confirm Custom Identity Key Store Pass Phrase: (空)
  Private Key Alias: ArmageddonKey (改动的地方)
  Passphrase: password
  Confirm Passphrase: password
  FinalFantasy Server:
  Custom Identity:
  Custom Identity Key Store File Name: myKeyStore.jks
  Custom Identity Key Store Type: JKS
  Custom Identity Key Store Pass Phrase: password
  Confirm Custom Identity Key Store Pass Phrase: password
  Custom Trust
  Custom Trust Key Store File Name: myKeyStore.jks
  Custom Trust Key Store Type: JKS
  Custom Identity Key Store Pass Phrase: (空)
  Confirm Custom Identity Key Store Pass Phrase: (空)
  Private Key Alias: FinalFantasyKey (改动的地方)
  Passphrase: password
  Confirm Passphrase: password
  1. 最后重新启动Admin Server,完成步骤C。
  A. 配置 Managed Server机器上的NodeManager。
  1. 查看目录BeaM\weblogic\common\nodemanager。BeaM代表是Managed Server的Bea实例,因为Admin里边的这个目录是空的。
  2. 编辑文件nodemanager.hosts,加入Cake这个地址。内容如下:(也可以直接加入IP地址,不过这里还是用DNS,因为SSL验证名字的原因)
  # Host names from which the connection to the
  # node manager will be accepted.
  # You can edit this file manually.
  # E.g. - for allowing a machine named holly to connect,
  # uncomment one of the following lines based on whether
  # ReverseDnsEnabled property is turned on or off.
  #holly.bea.com
  #172.17.24.145
  Cake
  3. 编辑文件nodemanager.properties。修改后内容如下:(这个是FinalFantasy Server的例子,请自行修改Armageddon Server的文件)
  PropertiesVersion=8.1
  KeyStores = CustomIdentityAndCustomTrust
  CustomIdentityAlias=FinalFantasyKey (FinalFantasy的密钥别称,Armageddon需要修改)
  CustomIdentityPrivateKeyPassPhrase={3DES}VEg7ahqqDWKmTZZMsynwzg\=\= (密码,如果你输入password的话,WebLogic会自动改为这个的)
  CustomIdentityKeyStoreFileName=myKeyStore.jks (设置myKeyStore的储存点)
  CustomIdentityKeyStoreType=JKS
  CustomIdentityKeyStorePassPhrase={3DES}VEg7ahqqDWKmTZZMsynwzg\=\= (密码)
  CustomTrustKeyStoreFileName=myKeyStore.jks (同样的设置KeyStore储存点)
  ReverseDnsEnabled=true
  4.检查以上修改,步骤D完成。
  B. 检查相应设置是否正确后,启动所有Server,完成设置。
  1.运行 BeaM\weblogic\server\bin\startNodeManager.cmd。
  格式:startNodeManager FinalFantasy 5555
  或者
  startNodeManager Armageddon 5555
  根据不同的server,运行不同的命令。
  2.启动Admin Server。
  3.来到Console,展开Servers,然后:
  a) 右击FinalFantasy,选择Start/Stop this Server。
  b) 右边的窗口中,单击 Start this Server.。
  c) 单击Yes,启动Managed Server。
  d) 在启动的过程中,你应该可以看到最底下的状态栏中,state栏目的内容是STARTING,Status的内容是TASK IN PROGRESS。(图3-1)
  e) 启动完毕,应该是: State:RUNNING 。Status:TASK COMPLETED。(图 3-2)

(图 3-1)


图3-2)

  4. 到这里为止,已经完成所有设置了。
  C. 用一个Web Application的部署检验以上设置。
  1. 随便建立一个Web Application,最简单的就可以了。
  2. 选择后,target里边选择Cake,还有FinalFantasy,就可以部署了。
  3. 如果你喜欢,你可以再建立一个server,这样的话,Independent Servers里边就会多一个出来。
  4. Deploy后,会选择是否让程序处理stage,还是你自己处理文件的存储。最好让weblogic处理stage。:)
  5. 最后,访问FinalFantasy的http,就可以看到相应的网页了。
  6. 终于完成了所有设置步骤。恭喜!
  附录A。详细设置WebLogic Server(AdminServer)。
  1. 启动Configuration Wizard。

  2. Next后,选择 Basic WebLogic Server Domain,再Next。
  3. 选Custom,Next。
  4. 在Administration Server Configuration中,填入相应内容。

5. 在Muliple Servers, Clusters, and Machines Options,选择Yes,单击Next。

  6. 点击2次Add,增加两个Managed Server。填入相应数据。单击Next。

7. 来到Clusters的设置栏。单击一下Add后,填入一下数据。最后单击Next,

8. 在这个窗口中,先单击右边target中的MyCluster,然后按两次中间上边的那个向右的箭头,就可以了。最后单击Next。

9. 如果出现Proxy设置,直接Next。

  10. 设置Machine,这里是为NodeManger设置的。设置完后,Next。

11. 来到Server To Machine配置,这里要注意,别搭配错了,虽然我没有试过错误的搭配的结果。

  Cake,是不属于任何Machine的,因为是Admin,就算属于一个Machine,也没有意义。

12. 配置JDBC,选择Skip,然后Next。
  13. 配置JMS,选择Skip,然后Next。
  14. 配置Security,,选择Skip,然后Next。
  15. 输入用户名和密码。
  Name:William
  Password:password
  16. 接下来,是Windows Options。左边选择是否建立启动的快捷方式,右边选择是否把Admin Server作为Windows服务启动。
  左边选择yes,右边选择No。最后Next。
  17. 启动菜单的编辑,直接Next。
  18. 来到WebLogic Configuration Enviroment了,左边选择Development Mode,右边选择Sun JDK,(随便,你喜欢了)。记得Next。
  19. 来到最后的一个设置,就是Create WebLogic Configuration。
  注意,要把右下方的那个 Configuration Name,写上Security,这个是Domain设置。然后单击Create。
  20. 选择Done,Exit。完成Admin Server的配置。


附录B。关于Cluster和Admin-Managed Server之间的管理关系,MultiCast的简介。
  首先,谢谢Hilaser的提醒,这是我一直没有注意过的问题。
  Admin 和Managed Server之间,是管理与被管理。一个Domain只能包含一个Admin Server,但是可以支持多个Managed Server。他们之间是依靠MultiCast联系的。MultiCast是基于UDP进行的,所以,请配置前,先测试一下UDP的通讯是否畅通。
  Cluster也是以同样的方式进行通讯的,同一个Cluster之间,通过一个MultiCast地址(如237.0.0.1:7001)进行通讯,如果不能正确的建立UDP通讯,Cluster也就不能正确的运行。
  下面将测试方法说一下:
  1. 首先,将weblogic.jar加入classpath。
  2. 在不同的机器上,执行不同的语句,
  java utils.MulticastTest –N name –A 237.0.0.1
  这里的name,是每一台机器都不一样的,作为自己的标志存在。
  237.0.0.1是MultiCast地址,也可以是不同Port的。详细资料,请查询BEA文档。
  3.如果运行结果是全部server都可以看到,就代表成功,不然就是那个节点通讯受阻。
 

 作者简介
 周骞是(dev2dev ID: 黯然销魂) BEA dev2dev中文网站--在线技术论坛WebLogic EJBS Development等栏目版主,WebLogic专家

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-343677-1-1.html 上篇帖子: [OBI-SEC-00022] Identity found weblogic but could not be authenticated 下篇帖子: 居然成功破解了BEA WebLogic Server中boot.properties密文还原明文
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表