Mrfei 发表于 2017-2-18 08:58:48

配置WebLogic Server 8.1的Node Manger和SSL(转)

 注意:由于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: CN=Cake,OU=FOR TESTING ONLY,O=MyOrganization,L=MyTown,ST=MyState,C=US
  Cert: 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。
http://dev2dev.bea.com.cn/images/school/server030722/image001.jpg
http://dev2dev.bea.com.cn/images/school/server030722/image002.jpg
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)
http://dev2dev.bea.com.cn/images/school/server030722/image003.jpg
(图 3-1)

http://dev2dev.bea.com.cn/images/school/server030722/image004.jpg
图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。
http://dev2dev.bea.com.cn/images/school/server030722/image005.jpg
  2. Next后,选择 Basic WebLogic Server Domain,再Next。
  3. 选Custom,Next。
  4. 在Administration Server Configuration中,填入相应内容。
http://dev2dev.bea.com.cn/images/school/server030722/image006.jpg
5. 在Muliple Servers, Clusters, and Machines Options,选择Yes,单击Next。
  6. 点击2次Add,增加两个Managed Server。填入相应数据。单击Next。
http://dev2dev.bea.com.cn/images/school/server030722/image007.jpg
7. 来到Clusters的设置栏。单击一下Add后,填入一下数据。最后单击Next,
http://dev2dev.bea.com.cn/images/school/server030722/image008.jpg
8. 在这个窗口中,先单击右边target中的MyCluster,然后按两次中间上边的那个向右的箭头,就可以了。最后单击Next。
http://dev2dev.bea.com.cn/images/school/server030722/image009.jpg
9. 如果出现Proxy设置,直接Next。
  10. 设置Machine,这里是为NodeManger设置的。设置完后,Next。
http://dev2dev.bea.com.cn/images/school/server030722/image010.jpg
11. 来到Server To Machine配置,这里要注意,别搭配错了,虽然我没有试过错误的搭配的结果。
  Cake,是不属于任何Machine的,因为是Admin,就算属于一个Machine,也没有意义。
http://dev2dev.bea.com.cn/images/school/server030722/image011.jpg
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的配置。
http://dev2dev.bea.com.cn/images/school/server030722/image012.jpg

附录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都可以看到,就代表成功,不然就是那个节点通讯受阻。
 http://dev2dev.bea.com.cn/images/_.gif
 作者简介 周骞是(dev2dev ID: 黯然销魂) BEA dev2dev中文网站--在线技术论坛WebLogic EJBS Development等栏目版主,WebLogic专家
页: [1]
查看完整版本: 配置WebLogic Server 8.1的Node Manger和SSL(转)