Domino for S/390 and Web Server Integration Roland Trauner, Tony Llopis, Brian Milkes, DJ Sher International Technical Support Organization www.redbooks.ibm.com SG24-5437-00 SG24-5437-00 International Technical Support Organization Domino for S/390 and Web Server Integration May 2000 Take Note! Before using this information and the product it supports, be sure to read the general information in Appendix E, “Special notices” on page 179. First Edition (May 2000) This edition applies to Domino for IBM HTTP Server V1, part of Lotus Domino for OS/390 V5.0.1 for use with the IBM HTTP Server 5.1 in OS/390 R7 This document created or updated on 09.05.2000. Comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. HYJ Mail Station P099 2455 South Road Poughkeepsie, NY 12601-5400 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. © Copyright International Business Machines Corporation 2000. All rights reserved. Note to U.S Government Users – Documentation related to restricted rights – Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. Contents Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii The team that wrote this Redbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Comments welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Chapter 1. Domino for IBM HTTP Server introduction . . . . . . 1.1 Reasons to use the Domino for IBM HTTP Server connector 1.2 Reasons not to use the Domino for IBM HTTP Server . . . . . 1.3 Use both Web interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 .1 .2 .2 Chapter 2. Configuring the Domino for IBM HTTP Server . . . . . . . . . . . 5 2.1 Configuration parameters values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Updating the Domino server configuration . . . . . . . . . . . . . . . . . . . . . . 7 2.2.1 Verifying the ServerKeyFilename setting . . . . . . . . . . . . . . . . . . . 7 2.2.2 Enforcing unique name resolution. . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.3 Allowing HTTP server access to selected Domino files . . . . . . . . . 7 2.2.4 Setting program-controlled attribute for Domino binaries . . . . . . . 8 2.2.5 Adding a Domino user ID to the HTTP server group . . . . . . . . . . . 9 2.3 Updating the IBM HTTP Server configuration . . . . . . . . . . . . . . . . . . . 10 2.3.1 Updating the IBM HTTP Server permissions . . . . . . . . . . . . . . . . 10 2.3.2 Updating the IBM HTTP Server environment variables . . . . . . . . 10 2.3.3 Activating the connector plug-in (Standard Domino authentication) 11 Chapter 3. Domino server installation . . . . . . . . . . . . . . . . . 3.1 Required hardware and software . . . . . . . . . . . . . . . . . . . . 3.1.1 DASD space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Preparing the OS/390 operating environment . . . . . . . . . . . 3.2.1 Authorizing a user who will install the Domino server . 3.2.2 Authorizing the Domino server . . . . . . . . . . . . . . . . . . 3.3 Preparing to install the Domino server code . . . . . . . . . . . . 3.3.1 Allocate the OS/390 data sets . . . . . . . . . . . . . . . . . . 3.3.2 Transferring the files using FTP . . . . . . . . . . . . . . . . . 3.3.3 Allocating HFS data sets (ALOCPROD) . . . . . . . . . . . 3.3.4 Transferring the Domino server TAR file . . . . . . . . . . . 3.3.5 Integrating the MOUNT statements from MDFYBPXP. 3.4 Running the install program . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Provide Domino installation parameters . . . . . . . . . . . © Copyright IBM Corp. 2000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 . 16 . 17 . 18 . 18 . 18 . 19 . 19 . 20 . 20 . 21 . 21 . 22 . 22 iii iv 3.5 Verifying path statements . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6 Configuring a new Domino server. . . . . . . . . . . . . . . . . . . . . 3.6.1 Understanding a “First Server in Domain” configuration 3.6.2 Starting the HTTP task in server configuration mode . . 3.6.3 Using the browser to configure a first server in domain. 3.7 Preparing a dynamic LPA . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.1 Starting the server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . 24 . 24 . 24 . 26 . 26 . 33 . 34 Chapter 4. Basic IBM HTTP Server installation . 4.1 Defining the Web server directory structure 4.2 Copying the Web server configuration files. . . . 4.3 Preparing the Web server configuration files . . 4.4 Defining the security environment . . . . . . . . . . 4.5 Defining the started procedure . . . . . . . . . . . . . 4.6 Authorizing the started procedure to RACF . . . 4.7 Creating a homepage . . . . . . . . . . . . . . . . . . . . 4.8 Starting the Web server . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 . 36 . 37 . 37 . 41 . 43 . 44 . 44 . 44 Chapter 5. Operating the Domino for IBM HTTP Server . . . . . . . . 5.1 Starting Domino for OS/390 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 User ID considerations for starting the Domino server . . . . 5.1.2 Starting the server with Telnet . . . . . . . . . . . . . . . . . . . . . . 5.1.3 DOMCON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Stopping Domino for OS/390 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Stopping Domino from the telnet or rlogin session . . . . . . . 5.2.2 Stopping Domino with DOMCON . . . . . . . . . . . . . . . . . . . . 5.3 Operating the Domino server . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Operating the server from Telnet . . . . . . . . . . . . . . . . . . . . 5.3.2 Domino administration client. . . . . . . . . . . . . . . . . . . . . . . . 5.3.3 Web administrator client . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.4 Operating the server with DOMCON . . . . . . . . . . . . . . . . . . 5.3.5 Recommendations for Domino operation . . . . . . . . . . . . . . 5.4 Monitoring the status of the Domino server . . . . . . . . . . . . . . . . 5.4.1 Issuing server commands from a telnet/rlogin session . . . . 5.4.2 Issuing server commands with DOMCON . . . . . . . . . . . . . . 5.4.3 Valuable OS/390 console commands . . . . . . . . . . . . . . . . . 5.4.4 UNIX System Services environment . . . . . . . . . . . . . . . . . . 5.5 Coordinating server start/stop sequence for the Web connector . 5.5.1 Coordinating a start/stop sequence with DOMCON . . . . . . 5.6 Dealing with abnormal terminations . . . . . . . . . . . . . . . . . . . . . . 5.6.1 Attempt to force a shut down of the server . . . . . . . . . . . . . 5.6.2 Forced cleanup with DOMINK. . . . . . . . . . . . . . . . . . . . . . . 5.6.3 Forced cleanup with nsd.sh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 . 45 . 46 . 47 . 48 . 52 . 52 . 52 . 54 . 55 . 55 . 55 . 55 . 56 . 56 . 56 . 56 . 57 . 57 . 57 . 58 . 58 . 59 . 59 . 59 Domino for S/390 and Web Server Integration .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6.4 Explicit kill of Domino processes. . . . . . . . . . . . . . . . . . 5.6.5 Explicit release of Domino resources . . . . . . . . . . . . . . 5.7 Starting the IBM HTTP Server . . . . . . . . . . . . . . . . . . . . . . . 5.7.1 Stopping the IBM HTTP Server. . . . . . . . . . . . . . . . . . . 5.7.2 Controlling the IBM HTTP Server . . . . . . . . . . . . . . . . . 5.7.3 Monitoring the IBM HTTP Server . . . . . . . . . . . . . . . . . 5.7.4 Accessing IBM HTTP Server administration . . . . . . . . . 5.7.5 Functions of the configuration and administration forms 5.7.6 Using the Web Server Administration interface . . . . . . . 5.7.7 Mapping Web Server Administration functions . . . . . . . 5.7.8 Administration security considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 . 61 . 63 . 63 . 64 . 65 . 65 . 67 . 68 . 75 . 76 Chapter 6. OS/390 authentication support for Domino . . . . . . . . . 6.1 Web access authentication overview . . . . . . . . . . . . . . . . . . . . . . 6.1.1 HTTP basic authentication . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.2 SSL client certificate authentication . . . . . . . . . . . . . . . . . . . 6.1.3 Domino session authentication option . . . . . . . . . . . . . . . . . 6.1.4 Authentication summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Overview of authentication with the Domino for IBM HTTP Server 6.2.1 Using Domino authentication . . . . . . . . . . . . . . . . . . . . . . . . 6.2.2 Using OS/390 authentication . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Authentication processing details . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Standard Domino authentication . . . . . . . . . . . . . . . . . . . . . . 6.3.2 OS/390 authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Enabling OS/390 RACF-based authentication . . . . . . . . . . . . . . . 6.5 Practical considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 . 79 . 79 . 80 . 80 . 80 . 81 . 81 . 82 . 84 . 84 . 88 . 95 . 95 Chapter 7. Setting up a secure Web server . . . . . . . . . . . . . 7.1 Decision on server certificates . . . . . . . . . . . . . . . . . . . . . . 7.2 Creating a server certificate using IKEYMAN . . . . . . . . . . . 7.2.1 Accessing the IKEYMAN utility . . . . . . . . . . . . . . . . . . 7.2.2 Generating and installing a self-signed certificate . . . . 7.3 Creating the server certificate using the Domino CA. . . . . . 7.3.1 Creating and submitting the server certificate request 7.3.2 Signing the certificate with the Domino CA . . . . . . . . . 7.3.3 Retrieving and receiving the signed certificate . . . . . . 7.4 Configuring the Web server for SSL . . . . . . . . . . . . . . . . . . 7.4.1 SSL troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 8. Setting up client certificates . . . . . . . . . . . . . . . . . . 8.1 Setting up the Domino Certificate Authority . . . . . . . . . . . . . . 8.1.1 Creating the Domino Certificate Authority application . . . 8.1.2 Creating the Certificate Authority key ring and certificate 8.1.3 Configuring the Domino Certificate Authority profile . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . 97 . . 97 . . 98 . . 98 . . 98 . 102 . 103 . 105 . 106 . 108 . 109 . . . . . . . . . . . . . . . . 111 . 111 . 112 . 112 . 114 . . . . . v 8.1.4 Setting up SSL on the Domino CA server . . . . . . . . . . . . . . . 8.2 Creating client certificates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1 Creating a Person entry in Domino directory. . . . . . . . . . . . . 8.2.2 Requesting the client certificate . . . . . . . . . . . . . . . . . . . . . . 8.2.3 Signing the certificate and adding it to the Domino directory. 8.2.4 Merging the signed client certificate . . . . . . . . . . . . . . . . . . . 8.2.5 Accepting the Domino CA in the client’s browser . . . . . . . . . 8.3 Adding the Domino CA trusted root to the HTTP Server . . . . . . . . 8.4 Setting up the Domino Server to accept electronic certificates . . . 8.5 Setting up the IBM HTTP Server to accept electronic certificates . vi . . . . . . . . . . . 114 . 117 . 117 . 118 . 120 . 121 . 122 . 123 . 125 . 126 Chapter 9. Configuration scenarios . . . . . . . . . . . . . . . . . . . . . . . . . 9.1 Configuration considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.1 TCP/IP addresses/ports when running multiple servers . . . . . 9.1.2 Same IP address on both servers . . . . . . . . . . . . . . . . . . . . . . 9.1.3 Supporting HTTP on both servers. . . . . . . . . . . . . . . . . . . . . . 9.1.4 Domain name server support . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.5 Client authentication options. . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.6 Server start/stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.7 Scalable Web server considerations . . . . . . . . . . . . . . . . . . . . 9.1.8 Internet cluster manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.9 One connector to one Domino server . . . . . . . . . . . . . . . . . . . 9.2 Basic Domino for IBM HTTP Server configuration . . . . . . . . . . . . . 9.2.1 Sample configuration: Basic Domino for IBM HTTP Server . . . 9.3 Multiple instances of the Domino for IBM HTTP Server . . . . . . . . . 9.3.1 Sample configuration: Second Domino for IBM HTTP Server . 9.4 Two or more IBM HTTP Servers connected to one Domino server . 9.4.1 Configuration Considerations . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.2 Sample configuration: Additional IBM HTTP Server . . . . . . . . . 127 . 127 . 127 . 128 . 128 . 129 . 129 . 129 . 129 . 130 . 130 . 131 . 132 . 134 . 136 . 139 . 139 . 141 Chapter 10. Migrating to the Domino for IBM HTTP Server . 10.1 Security considerations . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 Migrating the configuration . . . . . . . . . . . . . . . . . . . . . . . . 10.3 Features not supported by the Web connector . . . . . . . . . 10.4 Testing a migrated application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 . 143 . 144 . 144 . 145 Chapter 11. Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 Domino for IBM HTTP Server dependencies . . . . . . . . . . . 11.1.1 Software and required maintenance . . . . . . . . . . . . . . 11.1.2 Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.3 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1.4 Availability of system resources . . . . . . . . . . . . . . . . . 11.2 Error categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.1 Possible causes of Web connector initialization errors . . . . . . . . .. .. .. .. .. .. .. .. . . . . . . . . . . . . . . . . . 151 . 151 . 151 . 152 . 152 . 152 . 153 . 153 Domino for S/390 and Web Server Integration 11.2.2 Possible causes of abends . . . . . . . . . . . . . . . . . . . . . . . . 11.2.3 Possible causes of connectivity problems . . . . . . . . . . . . . 11.2.4 Failure to access Domino resources . . . . . . . . . . . . . . . . . 11.3 Tools for problem determination . . . . . . . . . . . . . . . . . . . . . . . . 11.3.1 Error messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3.2 Installation verification checklist . . . . . . . . . . . . . . . . . . . . 11.3.3 RACF security reference materials . . . . . . . . . . . . . . . . . . 11.3.4 Activating Web connector trace messages . . . . . . . . . . . . 11.3.5 Activating the HTTP server trace . . . . . . . . . . . . . . . . . . . 11.4 IBM HTTP Server logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.1 Troubleshooting Web connector startup errors . . . . . . . . . 11.5 Troubleshooting Web connector GWAPI initialization errors . . 11.5.1 Symptoms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5.2 Solutions for Web connector GWAPI initialization errors . . 11.6 Troubleshooting connectivity problems . . . . . . . . . . . . . . . . . . . 11.6.1 Symptoms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6.2 Solutions for connectivity problems. . . . . . . . . . . . . . . . . . 11.7 Troubleshooting authentication problems . . . . . . . . . . . . . . . . . 11.7.1 Symptoms of security-related problems . . . . . . . . . . . . . . 11.7.2 Solutions for security problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 . 153 . 154 . 154 . 154 . 154 . 154 . 155 . 156 . 156 . 157 . 160 . 160 . 161 . 162 . 162 . 163 . 165 . 165 . 166 Appendix A. Web connector initialization error messages . . . . . . . . . 169 A.1 DOMIHTTP-001 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 A.2 ICH408I (Insufficient access authority) for BPX.SRV.userid profile . . . . 171 A.3 Browser Error 500: IMW0240E Access denied. . . . . . . . . . . . . . . . . . . . 172 Appendix B. Configuration value chart . . . . . . . . . . . . . . . . . . . . . . . . . 173 Appendix C. Installation verification checklist . . . . . . . . . . . . . . . . . . . 175 C.1 Checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Appendix D. RACF security charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Appendix E. Special notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Appendix F. Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 F.1 IBM Redbooks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 F.2 IBM Redbooks collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 F.3 Other resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 F.4 Referenced Web sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 F.5 Lotus documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 How to Get ITSO Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 IBM Redbook Fax Order Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 vii Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 IBM Redbooks review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 viii Domino for S/390 and Web Server Integration Figures 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Connector definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Server audience Web page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Administration Settings Web page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Suggested IBM HTTP Server directory structure. . . . . . . . . . . . . . . . . . . . 36 Web server configuration files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 httpd.conf preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 httpd.envvars preparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Web server security setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Web server started procedure setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Authorizing the Started Procedure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 A simple homepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Listing interprocess communication resources . . . . . . . . . . . . . . . . . . . . . 61 Starting the IBM HTTP Server from the OS/390 console . . . . . . . . . . . . . 63 Stopping the IBM HTTP Server from the OS/390 console. . . . . . . . . . . . . 63 Use of the OS/390 MODIFY command to display server information . . . . 64 Use of the OS/390 MODIFY command to restart the IBM HTTP Server . . 64 Enabling Java options in Netscape Navigator . . . . . . . . . . . . . . . . . . . . . . 66 Enabling Java options in Microsoft Internet Explorer. . . . . . . . . . . . . . . . . 67 IBM HTTP Server configuration and administration authentication . . . . . . 69 IBM HTTP Server introduction page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Sample IBM HTTP Server administration form . . . . . . . . . . . . . . . . . . . . . 71 Sample IBM HTTP Server administration form help . . . . . . . . . . . . . . . . . 72 IBM HTTP Server help contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 IBM HTTP Server help index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Web Server administration flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Person document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Anonymous request with Domino standard authentication . . . . . . . . . . . . 85 Basic authentication request with Domino standard authentication. . . . . . 86 Client certificates with Domino standard authentication . . . . . . . . . . . . . . 87 Basic authentication request with OS/390-based authentication . . . . . . . . 88 Basic OS/390 authentication request using RACF . . . . . . . . . . . . . . . . . . 89 Client certificates with OS/390-based authentication. . . . . . . . . . . . . . . . . 91 X.509 and basic authentication with OS/390 authentication . . . . . . . . . . . 93 IKEYMAN entry panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 IKEYMAN: Key database menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 IKEYMAN: Create a self-signed certificate . . . . . . . . . . . . . . . . . . . . . . . 101 IKEYMAN: Key database menu - option 11. . . . . . . . . . . . . . . . . . . . . . . 102 Requesting a server certificate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Domino certificate processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 httpd.conf setting for SSL mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 © Copyright IBM Corp. 2000 ix 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. x VV trace for correct SSL setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Create Domino database authority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Create Certificate Authority key ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Creating CA server key ring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Transferring the key ring using FTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Creating a new Person entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Request a client certificate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Pick up signed client certificate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 Certificate pickup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Basic Domino for IBM HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 Section of httpd.envvars for IBM HTTP sample 1 . . . . . . . . . . . . . . . . . . 133 httpd.conf for IBM HTTP sample 1 with standard Domino authentication 133 Two separate instances of the Domino for IBM HTTP Server . . . . . . . . . 134 Section of httpd.envvars for IBM HTTP sample 2 . . . . . . . . . . . . . . . . . . 137 Section of httpd.conf for IBM HTTP sample 2 . . . . . . . . . . . . . . . . . . . . . 138 Two IBM HTTP Servers to one Domino server . . . . . . . . . . . . . . . . . . . . 139 Multiple IBM HTTP Servers to one Domino server . . . . . . . . . . . . . . . . . 140 Section of httpd.envvars for second (additional) HTTP server . . . . . . . . 142 Section of httpd.conf for second (additional) IBM HTTP Server . . . . . . . 142 Using both Domino for IBM HTTP connector & Domino HTTP task . . . . 146 HTML code for a Web page with different links . . . . . . . . . . . . . . . . . . . . 147 HTML page with links to different servers and comparison . . . . . . . . . . . 147 HTML code to display the comparison in frames. . . . . . . . . . . . . . . . . . . 148 HTML output to the frames comparison. . . . . . . . . . . . . . . . . . . . . . . . . . 149 RACF parameters for IBM HTTP Server . . . . . . . . . . . . . . . . . . . . . . . . . 177 RACF parameters for Domino for IBM HTTP Server connector . . . . . . . 177 RACF parameters for Domino and DOMCON for OS/390. . . . . . . . . . . . 178 Domino for S/390 and Web Server Integration Tables 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Configuration values used in examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Sample parameter values for httpd.conf configuration . . . . . . . . . . . . . . . 12 Data set allocations from the installation JCL (3390-3 cylinders) . . . . . . . 17 Allocation values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Installation parameter values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 First Server in Domain configuration parameter values . . . . . . . . . . . . . . . 26 MODIFY command options using Web server administration forms . . . . . 76 Basic Domino for IBM HTTP Server sample configuration parameters . 132 Second Domino for IBM HTTP Server sample configuration parameters 136 Additional IBM HTTP Server sample configuration parameters . . . . . . . 141 © Copyright IBM Corp. 2000 xi xii Domino for S/390 and Web Server Integration Preface This redbook describes how to customize and use the Domino for IBM HTTP Server, a component available in Domino R5.0.1. This component supports the use of the IBM HTTP Server for OS/390 to process HTTP requests for Domino databases. In this book we refer to the Domino for IBM HTTP Server as the “Web connector”. This book briefly describes the setup of the environment needed to run the Domino for IBM HTTP Server, including Domino 5.0.1 for OS/390 and the IBM HTTP Server 5.1 for OS/390. We describe the differences between the Domino internal HTTP task and the Web connector, as well as how to migrate from the Domino HTTP task to the Web connector. To help you decide how and when to use the Domino for IBM HTTP Server, we also provide you with different scenarios and usage examples. We give detailed information about security, authentication, and electronic certificates to be used with Domino through the Web connector. We also provide troubleshooting tips in case you run into any problems. We amassed a lot of experience while using these products and testing the different scenarios. All this experience is presented in this book and will help you to set up a Domino for IBM HTTP Server environment very smoothly. We wrote this redbook for Domino administrators, Webmasters and systems programmers who install or customize the Domino for IBM HTTP Server on OS/390 or migrate to this environment. It will also help the operations staff to run the environment. The team that wrote this Redbook This redbook was produced by a team of specialists from around the world working at the International Technical Support Organization Poughkeepsie Center. Roland Trauner is an IT consultant and professional expert at the International Technical Support Organization, Poughkeepsie Center. He writes extensively and teaches IBM classes worldwide on all areas of OS/390 e-business and network computing. Before joining the ITSO in 1998, Roland worked on the IBM S/390 technical support team in Germany for IBM EMEA Central Region. Roland joined IBM in 1979. If you have questions or comments regarding this book, you may contact him at trauner@us.ibm.com. © Copyright IBM Corp. 2000 xiii Tony Llopis is a Consulting Information Technology Specialist. He has many years of experience in the OS/390 area. Tony works in the IBM Lotus Integration Center in Dallas, Texas as part of the ILIC Domino/390 team. He has been involved with Domino/390 since the very first beta release. Tony is a Certified Lotus Principal in Notes System Administration. Brian Mikes is a Systems Engineer in the US. He holds a bachelors degree in Management Information Systems from the University of Florida. His areas of expertise include OS/390 UNIX System Services and OS/390 Web server. DJ Sher is a Senior Information Technology Specialist with the IBM Global Services organization in the United States. She has 17 years of experience in the large systems software field. Her areas of expertise include Domino/390 installation, OS/390 UNIX System Services enablement, and Web server implementation. For the past two years she has assisted large customers to enable the e-business platform on S/390 Enterprise servers. Thanks to the following people for their invaluable contributions to this project: Mike Ebbers International Technical Support Organization, Poughkeepsie Center James A. Ray IBM USA, Poughkeepsie Joe Gdaniec IBM USA, Endicott Don. R. Resnik IBM USA, Poughkeepsie Thomas Bradley IBM USA, Poughkeepsie Laura Smith IBM USA, Albany Bill Schnyder IBM USA, St. Louis Jacques Fusilier IBM USA, Dallas xiv Domino for S/390 and Web Server Integration James Caffrey IBM USA, Poughkeepsie Comments welcome Your comments are important to us! We want our Redbooks to be as helpful as possible. Please send us your comments about this or other Redbooks in one of the following ways: • Fax the evaluation form found in “IBM Redbooks review” on page 197 to the fax number shown on the form. • Use the online evaluation form found at http://www.redbooks.ibm.com/ • Send your comments in an Internet note to redbook@us.ibm.com xv xvi Domino for S/390 and Web Server Integration Chapter 1. Domino for IBM HTTP Server introduction The Domino for IBM HTTP Server is an IBM HTTP Server API (GWAPI) program that connects Domino 5.0.1 to the IBM HTTP Server. In this book we usually refer to it as the “Web connector”. The Web connector allows you to access Domino databases using a Web browser that is connected to a Web server on OS/390 Web (IBM HTTP Server for OS/390). The Web connector runs as a GWAPI program in the IBM HTTP Server tasks and accesses Domino databases using Domino APIs. Based on the GWAPI construct, most of the workload is shifted from the Domino Server to the IBM HTTP Server. Domino for OS/390 R5 still provides the internal Web server in addition to this new feature. The preferred option to access Domino is to use the Domino client software; it is still the most efficient way to access Domino applications. The Web server connectivity option is preferred for thin clients. Now, since there are two different methods of accessing Domino databases using the Web interface, your question will very likely be, which interface should you choose? In Chapter 9, “Configuration scenarios” on page 127, we list pros and cons of several configuration scenarios. That chapter can help you to decide which configuration you need in your environment. 1.1 Reasons to use the Domino for IBM HTTP Server connector You probably want to use the Domino for IBM HTTP Server interface in the following cases: • If you want to use Domino data or Domino access as part of a Web site that will also contain other fancy Web elements such as animation or multimedia. In this case you probably want to serve pictures, frames, multimedia and other components directly from the IBM HTTP Server without having Domino involved, and display the Domino application as part of a browser frame. This can be important in terms of performance since the IBM HTTP Server has several performance features like the FRCA cache. In this redbook project, we did not measure the performance differences between accessing Domino applications through the internal Domino HTTP task or through the Web connector. It appeared to us, however, as if both access methods were about equal in performance. © Copyright IBM Corp. 2000 1 When it comes to static Web serving however, such as accessing pictures and other static objects, then there is an advantage in using the OS/390 Web server. • If you want to run servlets and Java Server Pages through the IBM WebSphere Application server rather than through the Domino Servlet Manager. • If you want to be more flexible and have more influence on workload balancing by using the scalable Web server or by splitting the Domino application so it can be accessed through different Web servers. • If you want to use OS/390 user authentication as described in Chapter 6, “OS/390 authentication support for Domino” on page 79. 1.2 Reasons not to use the Domino for IBM HTTP Server You probably would not want to use the Domino for IBM HTTP Server interface in the following cases: • If you only need to Web-enable the Domino database access and you are not experienced in the OS/390 UNIX environment, especially not in the OS/390 Web server-OS/390 WebSphere Application Server environment, you will probably just set up the internal Domino Web interface. This option also has the advantage of being consistent across the platforms that support Domino. • If you are mostly accessing Domino using the client software and the few Web accesses would look too different from the client interface appearance. • If you want to use the Domino Internet Cluster Manager. • If you want to use the Domino Web server API (DSAPI) filters. See also 10.3, “Features not supported by the Web connector” on page 144 for other considerations. 1.3 Use both Web interfaces There is no “exclusive or” to use either the internal Domino Web interface or the Web connector. You may in fact combine both methods if you need to use functions provided by one or the other. This can be easily achieved, for example, by running the IBM HTTP Server and Domino using the internal Web interface on the same system using different IP addresses (defined through TCP/IP VIPA). By using HTTP 2 Domino for S/390 and Web Server Integration hyperlinks to access these services, the end user is not necessarily even aware that he or she is working with different servers. Domino for IBM HTTP Server introduction 3 4 Domino for S/390 and Web Server Integration Chapter 2. Configuring the Domino for IBM HTTP Server This chapter guides you through the process of setting up the Domino for IBM HTTP Server (Web connector) configuration using the standard Domino Web authentication model, in which the user’s credentials are validated against information stored in the Domino directory. The following sections focus on the steps required to connect the IBM HTTP Server to a Domino server when they are both already pre-installed. However, since this may not be the case, we will also direct you to the following chapters, covering the installation of either of the servers. Complete the following steps to set up the Domino for IBM HTTP Server: 1. If you do not have the Domino/390 server operational, proceed to install, set it up, and test it as described in Chapter 3, “Domino server installation” on page 15. 2. If the IBM HTTP Server instance that will run the Web connector does not exist yet, proceed to install, set it up and test it as described in Chapter 4, “Basic IBM HTTP Server installation” on page 35. Important Due to the way that Domino and the Domino for IBM HTTP Server share data, it is necessary to stop the IBM HTTP Server that is running the Web connector when the Domino server is stopped or terminates abnormally. Because of this, we recommend that you do not run Domino for IBM HTTP Server in the same IBM HTTP Server instance as you run other Web applications with critical availability requirements. Similarly, if you are running the IBM HTTP Server as a scalable server, you should not run the Web connector in the same queue server instance as other Web applications with critical availability requirements. 3. Update the Domino/390 server configuration to prepare to run with the Web connector as described in 2.2, “Updating the Domino server configuration” on page 7. 4. Update the IBM HTTP Server configuration to adjust its permissions and environment variables, and to activate the Web connector as a GWAPI plug-in module. This is described in 2.3, “Updating the IBM HTTP Server configuration” on page 10. © Copyright IBM Corp. 2000 5 Once the Domino for IBM HTTP Server has been configured properly, it is time to start it by starting both servers, Domino and the IBM HTTP Server. Then it will be appropriate to perform initial testing by accessing some Domino databases through the Web connector, including both public databases and databases that require authentication. For details about operation, refer to Chapter 5, “Operating the Domino for IBM HTTP Server” on page 45. 2.1 Configuration parameters values The sections that describe setting up and running the Domino for IBM HTTP Server make references to many parameters which are given specific values for a particular configuration instance, such as the location of HFS directories, user IDs for the Domino and IBM HTTP servers, and so on. Table 1 illustrates values that are generally used throughout the book. When configuring your Domino for IBM HTTP Server, be sure to replace these values with the proper ones for use in your system. Table 1. Configuration values used in examples Parameter 6 Value as used in examples Domino product install directory /usr/lpp/lotus Domino product executables directory /usr/lpp/lotus/notes/latest/os390 Domino data directory /notesdata1 Domino directory database names.nsf Domino Server User ID (RACF) DOMINO1 Domino UNIX group NOTESGRP Domino Server name domweb1/itsoweb Domino Server TCP Host Name domweb1.itso.ibm.com IBM HTTP Server install directory /usr/lpp/internet IBM HTTP Server server-root directory /usr/lpp/internet/server_root IBM HTTP Server User Id(RACF) WEBSRV IBM HTTP Server UNIX group IMWEB IBM HTTP Server TCP Host Name domweb1.itso.ibm.com IBM HTTP Server configuration /etc/httpd.conf IBM HTTP Server environment variable /etc/httpd.envvars Domino for S/390 and Web Server Integration 2.2 Updating the Domino server configuration After you have installed and set up the Domino for OS/390 server and verified that it works correctly, make the following changes to the Domino server environment in order to prepare for running in a Domino for IBM HTTP Server configuration. 2.2.1 Verifying the ServerKeyFilename setting If the Domino server ID file (typically called server.id) is not located in the Domino data directory, the notes.ini file for the server must include a fully-qualified path to the server ID file in the ServerKeyFilename setting.You should examine notes.ini and update this setting if necessary. Since notes.ini is an ASCII file, you must use the proper tool to preserve the character set. Two commonly used tools are: • From the telnet shell, use viascii, which provides a vi-like interface. • From the USS shell, use oeditascii. It has an ISPF editor look and feel. 2.2.2 Enforcing unique name resolution Because of the authentication processing and mapping that the connector does when the optional OS/390 authentication support is in use, security exposures exist if Domino Web user name lookup is allowed to resolve a Web user name to more than one Person document. The notes.ini variable NoAmbiguousWebNames with the proper setting can be used to prevent successful Web user name lookup if the results are not unique. Edit notes.ini, and add the following setting to the file: NoAmbiguousWebNames=1 The Web connector enforces that this setting is in effect by checking it at initialization time. The connector’s initialization will fail if this setting does not exist in the notes.ini file for the Domino server. Verify that the server ID file does not use a password. You cannot enter a password when the IBM HTTP Server starts up the Web connector. 2.2.3 Allowing HTTP server access to selected Domino files Make sure the OS/390 user ID under which the IBM HTTP Server runs (WEBSRV, in our case) has read-write access to the following files in the Domino data directory (i.e. /notesdata1): Configuring the Domino for IBM HTTP Server 7 -rw-------rw-------rw-------rw------- 1 1 1 1 DOMINO1 DOMINO1 DOMINO1 DOMINO1 NOTESGRP 4980736 Aug 17 12:06 NOTESGRP 2033 Aug 17 11:55 NOTESGRP 2307 Aug 13 08:41 NOTESGRP 2307 Aug 13 08:41 names.nsf notes.ini server.id log.nsf Depending on the authority of the IBM HTTP Server user ID, you may need to take action: • When it is configured as usual as a UNIX superuser, no special action has to be taken to grant it read-write access to the above files because a UNIX superuser can access any file in the HFS regardless of permission-bit settings. • If, however, the IBM HTTP Server user ID is not a superuser, then you should modify the group and permission bits associated with these files so that they are owned by the Domino UNIX group (i.e. NOTESGRP) and permit read-write access to members of that group. You should also ensure that members of the Domino UNIX group have read-write access to the Domino data directory itself. In our project, the IBM HTTP Server was configured as superuser, but if that is not your case, the following UNIX shell commands would do the job: $ $ $ $ $ cd /notesdata1 chgrp NOTESGRP $PWD chmod g+rwx $PWD chgrp NOTESGRP server.id notes.ini names.nsf log.nsf chmod g+rw server.id notes.ini names.nsf log.nsf The IBM HTTP Server user ID must also be added to the Domino UNIX group NOTESGRP, as described in 2.3, “Updating the IBM HTTP Server configuration” on page 10. 2.2.4 Setting program-controlled attribute for Domino binaries Make sure that the Domino executable libraries all have the program-controlled extended attribute set. This is needed so that they can be successfully used by the Web connector GWAPI plug-in module running within the IBM HTTP Server process. You can set this attribute by performing the following OS/390 UNIX shell commands while logged on as a user ID with superuser privileges: 8 Domino for S/390 and Web Server Integration $ cd /usr/lpp/lotus/notes/latest/os390 $ extattr +p * ... ... $ ls -E inotes* -rwxr-xr-x -ps 1 BPXROOT NOTESGRP 7077888 Apr 3 17:39 inotes As shown above, you can verify that the program-controlled extended attribute has been set by using the UNIX shell ls -E command. The program-controlled extended attribute is indicated by the p flag. Note that use of the extattr command is controlled by a RACF profile, so the user ID issuing the extattr command must be permitted to that profile, even if it is a superuser. If the extattr command reports errors on its chattr() calls, you probably do not have permission. Issue the following RACF TSO commands from a user ID that has RACF SPECIAL permission: permit bpx.fileattr.progctl class(facility) id(<yourid>) access(read) setropts raclist(facility) refresh Important There are a number of reasons that will cause the program-controlled attribute to be reset. If that happens, you must repeat the above process to properly set the attribute. A common reason for the reset is re-installing the Domino binaries, either by adding a new server or upgrading the code level. Also a reset will occur when the modules are subject to a change in ownership or group. 2.2.5 Adding a Domino user ID to the HTTP server group Modify the attributes of the Domino server user ID (DOMINO1) so that it is connected to the IBM HTTP Server RACF/UNIX group (IMWEB). This is required for proper sharing of IPC resources between the Domino server and the IBM HTTP Server running the connector. You can accomplish this by executing the following TSO RACF command from a user ID with RACF SPECIAL authority: connect DOMINO1 group(IMWEB) Configuring the Domino for IBM HTTP Server 9 2.3 Updating the IBM HTTP Server configuration After you have completed the basic installation and setup of the IBM HTTP Server instance that will run the Domino for IBM HTTP Server connector and verified that it works, make the following changes to the IBM HTTP Server configuration to prepare for running the Web connector and to activate the connector GWAPI plug-in module: 2.3.1 Updating the IBM HTTP Server permissions Modify the attributes of the IBM HTTP Server user ID (WEBSRV) so that it is connected to the Domino RACF/UNIX group (NOTESGRP). This is required for proper sharing of IPC resources between the Domino server and the IBM HTTP Server running the connector. You can accomplish this by executing the following TSO RACF command from a user ID with RACF SPECIAL authority: connect WEBSRV group(NOTESGRP) Ensure that the IBM HTTP Server user ID (WEBSRV) has authority to act as a surrogate for the Domino server user ID (DOMINO1). This ability is controlled by a RACF profile in the SURROGAT class. To create the profile (if necessary) and grant the WEBSRV user ID access to it, execute the following TSO RACF commands: permit bpx.server class(facility) id(WEBSRV) acc(read) setropts raclist(facility) refresh rdefine surrogat bpx.srv.DOMINO1 uacc(none) permit bpx.srv.DOMINO1 class(surrogat) id(WEBSRV) acc(read) setropts classact(surrogat) See Chapter 14 of OS/390 UNIX System Services Planning, SC28-1890, for background information on surrogate user setup. Note: If you were using SERVER as the Domino server user ID, this could lead to confusion, because the occurrence of SERVER in both bpx.server and bpx.srv.SERVER would be just a coincidence. The term bpx.server is the redefined name of a special FACILITY-class profile used to control the permission of server applications on OS/390. On the other hand, bpx.srv.SERVER would be the name of a the SURROGAT-class profile for the particular Domino user ID called SERVER. 2.3.2 Updating the IBM HTTP Server environment variables Update the IBM HTTP Server environment variable settings to add the directories required by the Web connector. If you are running the IBM HTTP 10 Domino for S/390 and Web Server Integration Server from a started procedure using the standard setup described in the IBM HTTP Server publications, then the IBM HTTP Server obtains its initial environment variables from the file /etc/httpd.envvars and you change its environment variables by editing that file. If you are running with some alternate setup, then you probably have a private httpd.envvars file. In addition, if you are running the IBM HTTP Server from a UNIX shell session, you may be inheriting environment variable settings from that shell environment. In any case, make the following changes: • Update the PATH environment variable to include the Domino data directory, the Domino product executables directory, and the Domino resources directory for your language. For example, if you are using the North American or International English version of Domino installed in the default locations, add the following directories to the PATH environment variable: /notesdata1 /usr/Lpp/lotus/notes/latest/os390 /usr/Lpp/lotus/notes/latest/os390/res/C • Update the LIBPATH environment variable to include the Domino product executable directory. For example, if you have installed Domino in the default locations, add the following directory to the LIBPATH environment variable: /usr/lpp/lotus/notes/latest/os390 2.3.3 Activating the connector plug-in (Standard Domino authentication) Update the IBM HTTP Server configuration file to add directives to activate the connector GWAPI plug-in module and route requests for Domino databases to it. If you are running the IBM HTTP Server from a started procedure and are using the standard setup, the IBM HTTP Server configuration file is /etc/httpd.conf. If you are running with some alternate setup, then you probably have a private httpd.conf for that setup. In either case, add the set of directives shown in Figure 1 on page 12 to the httpd.conf file in sequence before the default Pass rule: Configuring the Domino for IBM HTTP Server 11 NameTrans /icons/* DOM_INST_DIR/notes/latest/os390/domihttp:DomIcons NameTrans / DOM_INST_DIR/notes/latest/os390/domihttp:DomRootCmds Protection DOMINO-CONNECTOR-SETUP { Mask Anybody UserId DOM_SERVER_ID } Protect Protect Protect Protect *.nsf *.nsf/* /domicons/* /domjava/* DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP ServerInit DOM_INST_DIR/notes/latest/os390/domihttp:ServerInit "-sslport SSL_PORT" Service *.nsf DOM_INST_DIR/notes/latest/os390/domihttp:Service Service *.nsf/* DOM_INST_DIR/notes/latest/os390/domihttp:Service ServerTerm DOM_INST_DIR/notes/latest/os390/domihttp:ServerTerm Pass Pass /domicons/* DOM_DATA_DIR/domino/icons/* /domjava/* DOM_DATA_DIR/domino/java/* Figure 1. Connector definition When adding these directives to the httpd.conf file, replace the placeholders shown in italics (e.g. DOM_INST_DIR) with the values in use for your configuration. In our case we used the ones shown in Table 2. Table 2. Sample parameter values for httpd.conf configuration Placeholder Represents Sample Value DOM_DATA_DIR Domino data directory /notesdata1 DOM_INST_DIR Domino product directory /usr/lpp/lotus DOM_SERVER_ID Domino server user ID DOMINO1 SSL_PORT SSL-mode port number 443 installation The IBM HTTP Server processes its configuration file in an order-dependent manner. Because of this, it is important that the relative order of the directives as shown above be preserved. Also, it is important that the block of directives shown above must appear before the configuration files default Pass rule (the "Pass /* <someplace>" rule); otherwise, they will not have the correct effect. Notes: The connector will automatically detect the normal-mode and SSL-mode ports being used by the Web server when it processes the first normal-mode and SSL-mode requests, respectively. However, it is possible that the connector will need the SSL-mode port number before it has processed the first SSL-mode request. This will occur if Domino tries to 12 Domino for S/390 and Web Server Integration redirect a non-SSL connection to be an SSL one before the connector has processed the first explicitly-specified SSL request. The -sslport option on the Web connectors ServerInit directive is used to inform the connector of the SSL-mode port numbers in use by your Web server to handle this specific situation. You must include the -sslport option on the ServerInit directive if your Web server is using an SSL-mode port other than 443. Note that the -sslmode option does not change the SSL-mode port number being used by the Web server. Be aware that the entire set of initialization options on the ServerInit directive (everything following the domihttp:ServerInit part) must be enclosed in double quotes so that the entire string is passed to the connector, rather than just the first blank-delimited token. If you do not enclose the initialization string in quotes, the Web connector will report syntax errors with the initialization options. The purpose of the Mask Anybody directive shown Figure 1 on page 12 is to request that the IBM HTTP Server perform no access-control checking for requests that it passes through to the connector. However, all normal Domino security mechanisms apply because they are enforced by the connector and Domino while processing the request. Configuring the Domino for IBM HTTP Server 13 14 Domino for S/390 and Web Server Integration Chapter 3. Domino server installation This chapter describes the setup of the Lotus Domino server on S/390. The information here was composed using the Domino Installation Guide and Lotus Domino for S/390 Release 5: Installation, Customization and Administration, SG24-2083 which we suggest as your work basis. Note, however, that a redbook is not the real installation documentation, but an augmented publication. Although it may include more detail than the real installation guide included in the CD, it does not represent the latest installation information. Important For the latest information, and before Installing Domino for S/390, you must read the following documentation included in the Domino for OS/390 CD. You can read txt files with Notepad, nsf with an R5 Notes Client, and PDFs with the Adobe Acrobat Reader: • Getting started instructions in file Start.txt • Last-minute comments in file readme.txt • Release Notes: Domino for System 390 (readmes.nsf or readmes.pdf) • Installation Guide: Domino for System 390 (srvs390.nsf or srvs390.pdf) • For the latest maintenance, use a Web browser to access URL: www.s390.ibm.com/products/domino/domptf.html The following sections cover a “quick and proper” installation of a First in Domain Domino for S/390 server. Due to this scope, a number of install choices have been made, leaving unexplored a number of alternative installation paths. If your plans call for any of these alternative options, refer to the above documentation sources for proper guidance. Our Domino/390 installation can be summarized in the following steps: • Check hardware and software requirements. • Prepare the OS/390 operating environment. • Transfer files from the Domino CD to the system and allocate data sets. • Run the install program interactively. • Verify path statements (PATH, LIBPATH, AND CLASSPATH). • Configure the Domino server using the HTTP server/browser interface. • Prepare the dynamic LPA library. © Copyright IBM Corp. 2000 15 3.1 Required hardware and software Lotus Domino for S/390 Release 5 requires the following software and hardware: • OS/390 Version 2 Release 6 or higher and the required PTFs listed at: http://www.s390.ibm.com/products/domino/domptf.html • Java Development Kit (JDK) 1.1.6 or higher. Note: Java for OS/390 is an optional product. It is orderable in SMP/E format through your normal IBM software ordering channels. It is also available for download at: http://www.ibm.com/s390/java. You only need to install the JDK if you will use HTTP, DIIOP or Java agents, but we recommend that you install it anyway, because you may not require these functions now but may want to use them in the future. • The OS/390 C/C++ IBM Open class library installed. No license for the C/C++ feature of OS/390 is required. • High-level-qualifier.SCLBDLL must be in the program search order (for example, in the SYS1.PARMLIB member, LNKLSTxx or PROGxx). • A workstation with a CD-ROM and a connection to the S/390 where Domino will be installed. • TCP/IP networking support. • DASD volumes for the HFS datasets where Domino data will reside. Note: It is recommended that your installation enables the DASD fast-write function, which provides control unit caching for the Notes data. See 3990/9390 Planning, Installation, and Storage Administration Guide, GA32-0100, or the equivalent for your storage subsystem, for more information. DFSMS 1.5 also improves HFS performance. These OS/390 publications will be helpful to you during installation: • Lotus Domino for S/390 Release 5: Installation, Customization and Administration, SG24-2083 • OS/390 Planning for Installation, GC28-1726 • Program Directory for OS/390 • OS/390 UNIX System Services Planning, SC28-1890 16 Domino for S/390 and Web Server Integration 3.1.1 DASD space Table 3 show the minimum DASD space that is needed for the initial installation of the Domino server on S/390. This space is in three HFS data sets. We recommend that you use DASD fast-write caching or other fast access methods for these volumes. Table 3. Data set allocations from the installation JCL (3390-3 cylinders) Data Type HFS Data Set Mount point Default allocation Dynamic LPA yyyy.LPAPDSE ----------------------- 65 CYL Product files xxxx.PROD /usr/lpp/lotus 600 CYL Notes control files, databases and templates xxxx.DATA /notesdata1 500 CYL Notes mail files xxxx.MAIL /notesdata1/mail 500 CYL These data sets are allocated with the supplied job ALOCPROD. Although the space allocations in the supplied job may be larger than the values actually required for the install, it is suggested you use the defaults in the supplied JCL because the Domino R5 install process does a preliminary check to determine if the existing allocation will be sufficient for a successful install, in which case it will proceed. Otherwise it will terminate with an error and you will be forced to delete and reallocate the datasets. Note that the install script does not see the possibility of creating secondary extends. Also, be aware that to go into production, you will likely need to significantly increase the DATA and MAIL allocations. We recommend that you size your production requirements carefully and design your HFS data sets and directory structure accordingly. Domino server installation 17 3.2 Preparing the OS/390 operating environment Once you have installed OS/390 and the UNIX environment, there are specific customization steps required for Domino. See Domino for S/390 Install Guide for Servers for the latest parameter setting information. Warning The most common reasons for server start failure after installing Domino are: • Not all required PTFs were applied. • One or more BPXPRMxx parameters were not set to the recommended value. We strongly recommend that you apply all PTFs and set the parameters exactly as specified in Domino for S/390 Install Guide. Note: For hints and tips on errors you might encounter while setting up Domino R5, see the “Troubleshooting and Hints & Tips” section of Lotus Domino for S/390 Release 5, SG24-2083. 3.2.1 Authorizing a user who will install the Domino server The user ID which is used to install the Domino server on OS/390 must be defined to RACF with a valid OMVS segment (a valid UID and GID) and must have a UID of 0 (superuser) to be able to mount the HFS data sets. The user may either be defined with a permanent UID of 0 or be permitted READ access to the BPX.SUPERUSER RACF FACILITY class, thus enabling the use of the su command. 3.2.2 Authorizing the Domino server The Domino server runs as a user on OS/390. The user ID is the one that is used to start the server. This user ID must be defined to RACF with a valid OMVS segment (a valid UID and a valid GID). The user ID must have authority to access all of the Domino server files on the HFS, including: • The server’s notes data directory. • All the files under the notes data directory. • The notes.ini file. • The /usr/lpp/lotus directory. • All the files under the /usr/lpp/lotus directory. 18 Domino for S/390 and Web Server Integration • Write access to /tmp. • Read access to the BPX.STOR.SWAP RACF FACILITY class (if the installation has a requirement to run the server non-swappable). • Read access to BPX.SMF RACF FACILITY class (if you want the Domino server to create SMF 108 records). Note: You will also need to update the SMFPRMxx PARMLIB member to include SYS(TYPE(108)). Attention Never run the Domino server from a user ID with a UID of 0. The server runs agents on behalf of users, so it is possible that a user could run an agent with superuser authority. In addition, cleanup of leftover IPCS resources would be practically impossible if using a UID of 0. If needed, you can change the owning user ID and group ID for a file by issuing the UNIX command chown. 3.3 Preparing to install the Domino server code This section discusses the first stage of the installation of the Domino Server code on the S/390 server. These tasks will typically be done by an OS/390 system programmer and others familiar with OS/390. 3.3.1 Allocate the OS/390 data sets Use TSO and use ISPF (option 3.2) to allocate two OS/390 data sets to receive the data from the CDROM: • Allocate a partitioned data set (PDS) to store the JCL and PARMLIB files. Use the values in Table 4. Table 4. Allocation values Attribute Value Space units BLOCKS Primary quantity 10 Secondary quantity 1 Directory blocks 5 Record format FB Record length 80 Domino server installation 19 Attribute Value Block size 3120 Note: You can specify any permitted PDS name. DOMINO.R501.JCL.CNTL was used in the following instructions. 3.3.2 Transferring the files using FTP Four files must be uploaded from your workstation to an OS/390 PDS using FTP in binary mode. Follow the FTP example for step-by-step instructions to send the installation files into an OS/390 PDS. FTP example from PC-DOS command prompt: 1. Begin an FTP session from the workstation to OS/390 UNIX System Services: FTP WTSC59 <= WTSC59 is the TCP name of our OS/390 server 2. Enter in your user ID and password. 3. Transfer the files in binary. bin <= Switch to binary mode and press enter. 4. Change to the target location of the PDS. cd ’domino.r501.jcl.cntl’ 5. Change to the drive where the CD is located. lcd E:\ 6. Transfer the sample files from the CD-ROM on your workstation to the pre-allocated OS/390 PDS. put put put put alocprod.501 mdfybpxp.501 mdfyprog.501 putinlpa.501 alocprod mdfybpxp mdfyprog putinlpa 7. Check that the PDS contains these files and that they are readable. 3.3.3 Allocating HFS data sets (ALOCPROD) Modify the contents of the sample ALOCPROD job using the instructions in the file and these guidelines: • If this is the first-time Domino install, the job will allocate and provide mount points for /usr/lpp/lotus, /notesdata, and /notesdata/mail. You can modify the amount of DASD space allocated for /notesdata and 20 Domino for S/390 and Web Server Integration /notesdata/mail, as well as change the mount points to your liking (for example, to /notesdata1 and /notesdata1/mail). • If this is a migration (upgrade) from a previous release, modify the job so that only /usr/lpp/lotus and a new Dynamic LPA data set is allocated. You will use the existing /notesdata and /notesdata/mail directories. Submit the ALOCPROD job to allocate the product HFS data set and the dynamic LPA PDS/E. Additionally, ALOCPROD will create the HFS mount points and temporarily mount the HFS data sets at these mount points. Check the results of the ALOCPROD job to ensure no errors have occurred. 3.3.4 Transferring the Domino server TAR file This step will load the server code tar file into the Hierarchical File System (HFS). The tar file must be transferred in binary mode. FTP example: • On the workstation, start an FTP session to the OS/390 UNIX System Services FTP server. • Enter bin to have the file transferred in binary. • Enter cd /usr/lpp/lotus to change to the target location of the HFS. • Using the LCD command, change to the appropriate drive where the CD is located. • Enter put xxx.tar to transfer this file. Check to make sure the file size matches that of the original on the CD-ROM. To untar the xxx.tar file, go into the OS/390 UNIX System Services shell by entering OMVS from PDF option 6. From the OS/390 UNIX shell, enter: cd /usr/lpp/lotus tar -xvozf xxx.tar Note: This will unpack the file and place the packed files in the correct paths below the /usr/lpp/lotus path. This will take a couple of minutes. Now enter ls -al to validate that the sub-paths exist. If the files are there, you can delete the tar file from the HFS to save space by entering rm xxx.tar. You can always reload the tar file from the CD. 3.3.5 Integrating the MOUNT statements from MDFYBPXP When you re-IPL the system, the mounts you did in the ALOCPROD job will be lost. You need to make sure that the mount commands are issued every time the system is re-IPLed. Domino server installation 21 To accomplish this, you need to copy the mount statements from the MDFYBPXP file into SYS1.PARMLIB(BPXPRMxx). The mount statements will then be processed at IPL time. The MDFYBPXP file needs to be checked to verify that the data set and directory names match those you used when you ran ALOCPROD. 3.4 Running the install program This section describes how to run the Domino server installation and configuration programs. These tasks will typically be done by a Notes administrator with some help from an OS/390 systems programmer. We chose to use the interactive version, as opposed to the background script version of the install program. To start the process follow these steps: • Log in to the OS/390 UNIX environment with a RACF user ID that has UID=0. Important You must log in using rlogin or Telnet. Running install from the OMVS shell is not supported. • Type /usr/lpp/lotus/os390/install At this point you will be prompted for the information needed to install the server. 3.4.1 Provide Domino installation parameters As you proceed with the installation, you will be asked to provide values for the installation parameters summarized in Table 5 : Table 5. Installation parameter values 22 Parameter Value Setup type Domino Enterprise Server Program directory setting /usr/lpp/lotus Run partitioned servers NO Path name of data directory /notesdata1 Domino UNIX user (RACF) DOMINO1 Domino UNIX group (RACF) LOTUSGRP Domino for S/390 and Web Server Integration Setup type You can choose whether to install a Domino Mail Server, a Domino Application Server, or a Domino Enterprise Server. For our purpose we chose to install the Domino Enterprise Server. Program directory setting Specify a directory in an OS/390 UNIX HFS for the Domino server program files. The default directory as created by the ALOCPROD job is /usr/lpp/lotus. Run partitioned servers You can run more than one Domino server on the same OS/390 Logical Partition or LPAR. This feature is called Domino Partitioned Servers and requires separate notes data directories for each Domino server. Number of data directories If you selected partitioned servers, you have to specify the number of servers or notes partitions. Notesdata values For each of the servers (either just one if not running partitioned, or otherwise for each one of the partitions), you will be prompted for the path and owner/group of the notesdata directory: Path name for data directory Select a value that makes sense to you. We used /notesdata1, /notesdata2. Domino UNIX user that will own the data directory Identify the RACF UNIX user ID under which the Domino server will run. This user ID will become the owner of the server notesdata elements: directory and objects contained under it. Domino UNIX group This is the RACF group to which the previous server ID pertains. Note that all server IDs must be part of the same group, as well as the DOMCON ID if the MVS Domino console package is to be used. Once the notesdata values have been provided, you will be given the chance to review the settings that you have made. Then, either rework the answers if you made a mistake, or if satisfied, press the TAB key to let the installation proceed. The installation process may take an extended period Domino server installation 23 of time, depending on the size of your machine, system load, and the number of Domino servers you are building. 3.5 Verifying path statements After installing the Domino server, verify that the paths are set up correctly for the user that you specified during the install program. If the path statements are not correct, change them as necessary. To set environment variables for a UNIX user, you must edit the .profile file that is in their HOME directory. The PATH and LIBPATH statements must contain the location of the native_threads subdirectory of the Java Development Kit (JDK). The CLASSPATH must include the classes.zip subdirectory. Use the echo command to review the PATH. For example, use echo $LIBPATH to review LIBPATH. Note: The PATH statements are installation-dependent. The Java path is only necessary if you require Java support, but you may as well put it in to avoid error messages at server initialization. PATH=/usr/lpp/lotus/bin:/usr/lpp/lotus/bin/tools:/bin:/usr/lpp/java/ J1.1/bin:/usr/lpp/java/J1.1/lib/mvs/native_threads: LIBPATH= /usr/lpp/java/J1.1/lib/mvs/native_threads: CLASSPATH=/usr/lpp/java/J1.1/lib/classes.zip After completing this step, you are ready to configure the new Domino server(s) using the Domino HTTP server task and a Web browser. 3.6 Configuring a new Domino server After installing the Domino for OS/390 binaries and populating the server’s notesdata directory, you are ready to perform the configuration of the server as a “First Server in Domain”. First we explain what happens when a First Server in Domain is created, then we proceed with the configuration steps. 3.6.1 Understanding a “First Server in Domain” configuration This is an overview of what happens when you run the first server configuration. 24 Domino for S/390 and Web Server Integration Configuring the first Domino server does the following: • It creates a new domain for the Domino servers. • It enables the appropriate network and serial ports. • It creates the Domino directory for the domain. The configuration program uses the PUBNAMES.NTF template to create the Domino directory in the same directory you choose for Domino data files, and gives it the default name NAMES.NSF. • It creates a certifier ID for your organization. The configuration program saves the certifier ID in the same directory you choose for Domino data files and gives it the default name CERT.ID. • It creates a certifier document in the Domino directory. This document describes the certifier ID. • Creates a server ID for the new server. The configuration program saves the server ID in the same directory you chose for Domino data files and gives it the default name SERVER.ID. • Certifies the server ID with the organization certifier ID. • Creates a server document in the Domino directory. This document describes the first server based on information that you specify during configuration. • Creates a person document in the Domino directory for the Domino administrator specified during configuration. • Creates a user ID and a password for the Domino administrator and attaches it as a file named user.id to the administrator’s person document in the Domino directory. • Certifies the administrator’s user ID with the organization certifier ID. • Adds the administrator’s name and the server's name as managers in the access control list of the Domino directory. • Adds the server name to the LocalDomainServers group in the Domino directory. • Creates a mail directory in the Domino data directory and a mail file in that directory for the Domino administrator. Domino server installation 25 3.6.2 Starting the HTTP task in server configuration mode 1. Logon to the system as the Domino user ID that was specified during the install. Important This user ID should not be UID=0. It should also be not the same user ID that was used to install the code. 2. Change to the Notes data directory. 3. Enter the following to start the HTTP server: /usr/lpp/lotus/bin/http httpsetup Note: The httpsetup program must be run from the Notes Data Directory for each server being configured. If three Notes data directories were populated during install, /notesdata1, /notesdata2, /notesdata3, httpsetup would be run three times, each time logging on as the owner of a particular notes data directory. 4. When prompted, connect to the server with a Web browser, such as Netscape Communicator. Use the port specified by the configuration program. For example, if the server is domweb1.itso.ibm.com with corresponding IP address 192.168.5.97 and the specified port is 8081, you would enter the following in the Web browser’s location entry field: http://domweb1.itso.ibm.com:8081 or http://192.168.5.97:8081 3.6.3 Using the browser to configure a first server in domain After connecting to the HTTP server with a Web browser, you can proceed to configure the new server. You can quit the configuration at any time and return later with your information preserved by clicking Save & Quit in the top right of the screen. For more information about the choices you make, click the Quick Help on the right side of the screen. As you go through the process you will be presented with the following Web pages and asked to provide required parameters and options. Table 6 summarizes the values we used for the most significant parameters. Table 6. First Server in Domain configuration parameter values 26 Parameter Value Domain name Itsoweb Certifier name (organization) Itsoweb Domino for S/390 and Web Server Integration Parameter Value Server name Domweb1 Server’s hostname domweb1.itso.ibm.com 3.6.3.1 Creating a new Domino server The first prompt allows you to select whether you are about to create the first server or an additional server in the Domain. In general, you select a First Server in Domain if you do not have Domino in your organization, or if you need to create a new domain. Since we need to create a new domain, we will select this option and proceed to the next step. 3.6.3.2 Server audience Web page In this page you define who, besides Notes users, will be users of this server; refer to Figure 2 on page 28. The page is structured into sections: Standard services This lists server tasks that are automatically configured on the Domino server in the Standard services section. You cannot modify this section because these tasks are essential for the server to function. Additional services (Optional services for Domino servers) If you want to use the calendar and scheduling features on this server, you select both the Schedule Manager and the Calendar Connector options. The Schedule Manager server task is responsible for creating the Free Time database and handling free time lookups for users in the server. The Calendar connector server task enables Domino to look up free time information for a user on another server. If you want to use event monitoring, select both the Event Manager and Statistics options. This will enable the Event server task, which is responsible for reporting report server errors and alarms, and the Report task, which is responsible for collecting statistics about server activities such as mail, available disk space and memory usage. Domino server installation 27 Figure 2. Server audience Web page Web Browsers section If you want browsers such as Netscape Navigator to access data on the server, select HTTP to install the HyperText Transfer Protocol (HTTP) server task. If you want Domino to handle client IIOP requests, select IIOP to install the Domino Object Request Broker (ORB), which allows Domino objects to respond to IIOP requests. If you select HTTP, choose the primary activity for clients connecting to this Domino server over HTTP. You can choose either Web Mail or Web Applications, or both Web Mail and Applications. If you wish to manually set the HTTP settings for this server, select Advanced (Custom Settings). This selection sets the Domino HTTP settings for optimal performance for the activities Web clients will perform on the server. Internet Mail packages section If you want mail clients using Internet Message Access Protocol (IMAP) and/or Post Office Protocol 3 (POP3) to access mail on the server, select the option IMAP and/or POP3. These options will enable the corresponding server tasks. 28 Domino for S/390 and Web Server Integration If you selected IMAP or POP3, you also need to select SMTP if you want to do mailing. Internet directory services If you want clients using Lightweight Directory Access Protocol (LDAP) to access directory information on the server, select LDAP to install the LDAP server task. News readers If you want news readers using Network News Transfer Protocol (NNTP) to access news groups and discussions on the server, select NNTP to install the NNTP server task. Enterprise Connection Services If you want to access data stored outside a Domino database, such as in a relational database or enterprise resource planning system, click the arrow and select DECS to install Domino Enterprise Connection Services. Once you have made your selections on the Server Audience screen, press the right arrow button located at the top of the Server Audience page. This will take you to the next page, as shown in Figure 3 on page 30. Domino server installation 29 Figure 3. Administration Settings Web page 3.6.3.3 Administration Settings Web page In the Administration Settings page, do any or all of the following: Organization identity section Enter a domain name. This is the name of a brand-new Domino domain to be created, to which the new server will belong. Other servers may be added later on. Enter a certifier name. This is the name of the organization certifier used to stamp Notes ID files so that you can authenticate their identity. Enter a country code for your certifier (optional). Select whether to create a new certifier ID or use an existing one. If your organization does not yet have a certifier ID, create a new one. If you 30 Domino for S/390 and Web Server Integration select to use an existing certifier ID, enter the file name for the certifier ID you want to use. Enter a certifier password. The password must be at least eight characters. (Lotus recommends using mixed-case passwords of at least 13 characters.) If you are performing Advanced Configuration and select to use an existing certifier ID, you do not need to specify a password. New server identity section Enter a server name (for example, Domweb1). This is the name of the new Domino server. Users and other servers access the server using this name. Enter a server hostname: this the fully qualified TCP/IP host domain name (in our case, domweb1.itso.ibm.com). Select whether to create a new server ID or use an existing one (in our case, we want to a new server ID). Administrators identity section Enter a first name, middle initial (M.I.), and last name for the server administrator. Select whether to create an administrator ID or use an existing one (in our case, we created a new one). Enter the password for the administrator’s ID. The password must be at least eight characters. (Lotus recommends using a mixed-case password of at least 13 characters.) Press the right arrow button to continue to the next page, which is Network and Communication Settings. 3.6.3.4 Network and Communications Settings Web page In the Network and Communication Settings section, do any or all of the following: 1. In the Network Options section, select whether to use all available ports or to select ports. 2. If you choose to select ports, do the following for each port: • Choose a protocol by clicking the down arrow, selecting a protocol, and clicking OK. • Enter a network address. • Click the down arrow and select to enable or disable the port. 3. No input is required in the Communications Port Options section. Domino server installation 31 4. Verify that the server settings are correct and click Finish. After you finish configuring the server, a Congratulations screen is displayed. Notes prompts you to write down the server ID password, certifier ID password, and administrator’s ID password. Be careful to keep these passwords secure. Clicking the EXIT button on the Congratulations window on the browser will cause the HTTP Server task to shut down on the server, at which point the configuration process is complete. 3.6.3.5 Setting up the Domino administrator client Now you need to prepare a client workstation from which to administer the newly created Domino domain. • If you do not have a workstation with the Domino administrator client you will have to set one up; during the course of the setup, the administrator ID file will be retrieved from the corresponding person record in the Domino directory in the server. This process requires you to have the server started and operational. • In our case, we had a workstation with the Notes clients installed. We had to download the ID which is stapled to the Person document in the Domino directory. There are two options to do so: • Use FTP to download to the workstation names.nsf, the Domino directory, taking care not to overwrite the local address book. Using the Notes client, open the downloaded address book and detach the user.id file from the administrator document. We suggest you rename the file to a more meaningful name. • Start the server, enabling the HTTP task. Then point a Web browser to the server’s Domino directory by using the proper URL format. In our case, it was the following: http://domweb1.itso.ibm.com/names.nsf Once in the Address Book page, navigate to People, select the administrator document, and when it displays, click the attached UserID. This will trigger a download process. Note: Be sure to assign an appropriate name to the saved file; otherwise you will end with an .html instead of an .id file extension. Once the administrator ID file is in the workstation, you should be able to access the server using the Domino administrator client. However, to register users or additional servers, you also need to bring down cert.id, the 32 Domino for S/390 and Web Server Integration Organization’s Certifier ID. This can be done using plain FTP in binary. Again, think about renaming this file to a more descriptive name. 3.7 Preparing a dynamic LPA At this point you need to place selected Domino binaries in LPA. This is done to ensure a single in-storage copy of each binary is shared among processes. If this was not done, each process would need to load its own copy of the code. 1. Modify and submit the PUTINLPA job to relink the DLLs into the PDS/E previously allocated by the ALOCPROD job. Check the results of the PUTINLPA job to ensure that no errors have occurred. 2. After the re-link is complete, verify that the copied executables have their sticky bit turned on. If the PUTINLPA job ran successfully, the sticky bits should be on. To verify, login to the USS shell and issue the following commands from /usr/lpp/lotus/notes/latest/os390: ls -l libnotes ls -l ftgtr ls -l decsext A t should be displayed in the last position of the file permission bits if the sticky bit is turned on. If not, you can use the chmod command to turn it on: chmod o+t /usr/lpp/lotus/notes/latest/os390/libnotes 3. Copy the sample, MDFYPROG, into your existing or new SYS1.PARMLIB(PROGxx) member. Ensure the PDS/E name specified in PROGxx is consistent with the PDS/E name previously allocated by the ALOCPROD job. Since it is not possible to activate dynamic LPA entries from the PROG= statement in IEASYSxx (as you would for regular LPA), you must add the following entry to SYS1.PARMLIB(COMMNDxx) to activate the dynamic LPA at IPL time: COM=’SET PROG=xx’ SYS1.PARMLIB(IEASYSxx) must point to COMMNDxx. 4. If you were using a previous release of Domino, remove the previous LPA data set from the LPALSTxx PARMLIB member. You will have to perform an IPL with CLPA (clear link pack area). 5. On the OS/390 console, issue SET PROG=xx to activate the dynamic LPA. Domino server installation 33 3.7.1 Starting the server Now you are ready to start the Domino server and exercise some basic functions by accessing it from the Lotus Notes Administration client. Refer to Chapter 5, “Operating the Domino for IBM HTTP Server” on page 45 for operational details. 34 Domino for S/390 and Web Server Integration Chapter 4. Basic IBM HTTP Server installation This chapter describes the setup of the IBM HTTP Server for OS/390 as a single Web server to be used for the Domino connector. This server is intended to run in normal mode only (no SSL encryption). Setting up a secure server needs some extra steps, as described in Chapter 7, “Setting up a secure Web server” on page 97. You may configure the server using a Web browser and the remote administration configuration method as described in Planning, Installing, and Using, SC31-8690, or you may update the server configuration file using a text editor. The manual Planning, Installing, and Using in the section titled “Using the Configuration and Administration forms” describes the steps to follow when using the remote server administration forms. The following descriptions are based on the use of a text editor instead of the remote server administration forms. We assume that: • OS/390 UNIX System Services is set up. • TCP/IP is running. • The code for IBM HTTP Server 5.1 for OS/390 has been SMP/E installed as outlined in the Program Directory for OS/390 V2R7.0, GI10-4001. The current version of this document can be found at: http://www.s390.ibm.com:80/bookmgr-cgi/bookmgr.cmd/BOOKS/IEA1PD05/CCONT ENTS The SMP/E installation will place the code for IBM HTTP Server 5.1 for OS/390 in the directory /usr/lpp/internet. Our proposed “quick and proper” customization consists of the following steps: • 4.1, “Defining the Web server directory structure” on page 36 • 4.2, “Copying the Web server configuration files” on page 37 • 4.3, “Preparing the Web server configuration files” on page 37 • 4.4, “Defining the security environment” on page 41 • 4.5, “Defining the started procedure” on page 43 • 4.6, “Authorizing the started procedure to RACF” on page 44 • 4.7, “Creating a homepage” on page 44 • 4.8, “Starting the Web server” on page 44 © Copyright IBM Corp. 2000 35 4.1 Defining the Web server directory structure We suggest you use a directory structure similar to the following outlined in Figure 4. /web/server1/pub /images /sec /logs /reports /ocgi /servlets /rexx /web/server2/pub ... Figure 4. Suggested IBM HTTP Server directory structure This directory structure should contain some separate Hierachical File Systems (HFSs) which serve the following purpose: /web - root directory for Web servers /web/server1 - working directory for server1 - small HFS - contains all Web server configuration files - directory for Web content (html etc.) - extra HFS ......./images - directory for images used by Web content .../pub .../sec - directory for security related files (certificates, group files etc.) .../logs - contains all Web server logs - extra HFS .../reports - contains all Web server reporting files - extra HFS .../ocgi - directory for CGI programs - extra HFS if needed .../servlets - directory for Java Servlets - extra HFS if needed .../rexx - directory for GWAPI REXX - extra HFS if needed During the residency we defined /web/apple, /web/bean, /web/candy, and so on. They may seem like funny names, but they allow for an easy identification 36 Domino for S/390 and Web Server Integration of the Web servers. Each of these Web servers had its own start procedure named WEBAPPLE, WEBBEAN, and so forth, as you will see later. Why did we choose to use so many separate HFSs? The reasons are: • We found separate HFSs more convenient to maintain. • Once set up, several HFSs can be mounted READ ONLY for security reasons if desired. • At a minimum, the /logs, the /reports and the /pub directory should reside in an extra HFS because of their unpredictable size. Our reasons for choosing this particular directory structure were: • In several projects at the ITSO, and with customers, we found this a good general structure. • At the ITSO Poughkeepsie, we run multiple Web servers concurrently and, more often than not, on different software levels. The structure helps to manage them easily and keep the configurations and configuration files separate. • Maintenance, which normally will overwrite files in /usr/lpp/internet, does not affect the individual Web server configurations file, but the maintenance becomes effective for all servers. 4.2 Copying the Web server configuration files Copy the Web server configuration files into the individual Web server working directory; that is, copy the files shown in Figure 5 from the /usr/lpp/internet/samples/config to /web/server1, /web/server2, and so on. httpd.conf httpd.envvars mvsds.conf ics_pics.conf javelin.conf socks.conf lgw_fcgi.conf IMWSendMail.cfg - Web Server main configuration files Web Server environment variables MVSDS function config file PICS Rating file Web Traffic Express (Proxy) config file another Proxy config file Fast CGI config file "old" SendMail config file Figure 5. Web server configuration files 4.3 Preparing the Web server configuration files Initially only two configuration files need to be changed: Basic IBM HTTP Server installation 37 • httpd.conf • httpd.envvars Note that httpd.conf is the Web server main configuration file. The httpd.conf configuration example is shown in Figure 6, and prepares for a globally accessible Web server in accordance with our suggested structure. We suggest that you never overwrite a parameter but rather repeat it on a new line, comment out the original line, and change the repeated line. Only the minimum changes necessary are shown: ------------------------- httpd.conf --------------------------------InstallPath /usr/lpp/internet <-default # ServerRoot server_root ServerRoot /web/server1 <-default <-changed Port 80 <-default. Change the Port directive if you like to run multiple Web servers on the same IP address. The port can also be defined with the -p parameter in the Web server started procedure # UserId %%CLIENT%% UserId PUBLIC <-default <-changed to allow "anonymous" without user identification # PidFile /usr/lpp/internet/server_root/httpd-pid <-default PidFile /web/server1/httpd-pid <-changed # AccessLog /usr/lpp/internet/server_root/logs/httpd-log # AgentLog /usr/lpp/internet/server_root/logs/agent-log # RefererLog /usr/lpp/internet/server_root/logs/referer-log # ErrorLog /usr/lpp/internet/server_root/logs/httpd-errors # CgiErrorLog /usr/lpp/internet/server_root/logs/cgi-error AccessLog /web/server1/logs/httpd-log AgentLog /web/server1/logs/agent-log RefererLog /web/server1/logs/referer-log ErrorLog /web/server1/logs/httpd-errors CgiErrorLog /web/server1/logs/cgi-error # AccessLogArchive none # ErrorLogArchive none AccessLogArchive purge ErrorLogArchive purge 38 Domino for S/390 and Web Server Integration <-default <-default <-default <-default <-default <-changed <-changed <-changed <-changed <-changed <-default <-default <-changed <-changed Purge the logs on condition Condition defined later. # AccessLogExpire 0 # ErrorLogExpire 0 AccessLogExpire 10 ErrorLogExpire 10 <-default <-default <-changed <-changed Purge the logs on condition. Keep the last 10 logs. # AccessReportRoot /usr/lpp/internet/server_root/pub/reports <-default AccessReportRoot /web/server1/reports <-changed # ReportDataArchive none ReportDataArchive purge <-default <-changed Purge the reports on condition. Condition defined later. # ReportDataExpire 0 ReportDataExpire 40 <-default <-changed Purge condition: Keep the reports for 40 days # LoggingReportingProgram /usr/lpp/internet/sbin/htlogrep # LoggingReportingProgramOptions -c/etc/httpd.conf LoggingReportingProgram /usr/lpp/internet/sbin/htlogrep LoggingReportingProgramOptions -c/web/server1/httpd.conf <-default <-default <-changed <-changed Enable Reporting Change the following 4 statements Disable Web Traffic Express (special Proxy functions) if not needed. Performance/Resource option # # # # ServerInit /usr/lpp/internet/bin/Jav_dll.so:Javelin_init Service /cgi-bin/dogc.icapi /usr/lpp/internet/bin/Jav_dll.so:doGC PreExit /usr/lpp/internet/bin/Jav_dll.so:Javelin_preFilter Enable ICSERRORLOG /usr/lpp/internet/bin/Jav_dll.so:Javelin_errorLog <-- Change the following 6 lines. Disable CAServlet and Servlet Express. This function has moved to WebSphere Application Server. # Service /*.jhtml ..cont. /usr/lpp/WebSphere/AppServer/lib/libadpter.so:AdapterService # Service /*.shtml ..cont. /usr/lpp/WebSphere/AppServer/lib/libadpter.so:AdapterService # Service /servlet/* Basic IBM HTTP Server installation 39 ..cont. /usr/lpp/WebSphere/AppServer/lib/libadpter.so:AdapterService # Pass /CAServlet/* ..cont. /usr/lpp/internet/server_root/CAServlet/C/* # Pass /ServletExpress/resources/* ..cont. /usr/lpp/internet/server_root/CAServlet/C/* # Pass /ServletExpress/* ..cont. /usr/lpp/WebSphere/AppServer/web/* .... Exec /Docs/admin-bin/* /usr/lpp/internet/server_root/admin-bin/* Exec /my-cgi-bin/* /web/apple/ocgi/* <-add for your own CGIs # Pass /reports/javelin/* ... /usr/lpp/internet/server_root/pub/reports/javelin/* <-changed Pass /reports/java/* /usr/lpp/internet/server_root/pub/reports/java/* # Pass /reports/* /usr/lpp/internet/server_root/pub/reports/* <-default Pass /reports/* web/server1/reports/* <-changed # *** ADD NEW PASS RULES HERE *** # Pass /* /usr/lpp/internet/server_root/pub/* <-default Pass /Server/* /usr/lpp/internet/server_root/pub/* <-add Pass /* /web/server1/pub/* <-add CacheLocalFile /usr/lpp/internet/server_root/Admin/lgsplash.gif CacheLocalFile /web/apple/pub/index.html <-add ------------------------- httpd.conf --------------------------------Figure 6. httpd.conf preparation Notes to Figure 6: • The default setup and mapping rules define /usr/lpp/internet/server_root/pub/Frntpage.html to be the primary homepage. • The changed setup and mapping rules define /web/server1/pub/index.html to be the primary homepage. • Frntpage.html (and with it the Remote Server Configuration Dialog) still can be reached using URL: http://servername/Server • If you decide not to use the Remote Server Configuration Dialog, you may comment out most of the mapping statements. • You may keep the “original” Frntpage.html, but you should certainly cache your homepage including all the images. • Also consider caching other frequently accessed static pages and consider using the FRCA cache. 40 Domino for S/390 and Web Server Integration The next file to customize is httpd.envvars which is the Web server’s global variable file. The httpd.envvars example shown in Figure 7 enables a standard Web server. PATH=/usr/lpp/internet/bin:/usr/lpp/internet/sbin: -- cont --> /bin:.:/usr/sbin:/usr/lpp/ldap/bin SHELL=/bin/sh TZ=EST5EDT LANG=C LC_ALL=en_US.IBM-1047 NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lpp/internet/%L/%N: -- cont --> /usr/lpp/ldap/lib/nls/msg/%L/%N LIBPATH=/usr/lpp/internet/bin:/usr/lpp/internet/sbin:/usr/lpp/ldap/lib STEPLIB=CURRENT Figure 7. httpd.envvars preparation 4.4 Defining the security environment IBM HTTP Server requires some setup regarding security (RACF). To enable your standard Web server, the following steps are necessary: • Create the Web server Administration ID (WEBADM) and its RACF Group. • Create the Web server’s own user ID (WEBSRV). • Permit WEBSRV to BPX.DAEMON and BPX.SERVER RACF FACILITY classes (and make sure they are activated). • Create the anonymous access user ID (PUBLIC) and its RACF group. • Turn on program control. Program control is not needed to prevent access to programs (in the classical RACF sense) but it is used to indicate that these libraries are authorized libraries. Security experts may suggest using user IDs and groups other than the published ones to make it more difficult for hackers. We suggest that you stay with these names if this is your first installation. Switch them later when you have gained a more complete understanding of all the dependent security mechanisms (like PROTECT statements in httpd.conf, etc.). Basic IBM HTTP Server installation 41 Figure 8 shows the RACF commands required for a particular Web server called CANDY. ADDGROUP IMWEB OMVS(GID(205)) ADDGROUP EXTERNAL OMVS(GID(999)) ADDUSER WEBADM DFLTGRP(IMWEB) OMVS(UID(206) HOME('/usr/lpp/internet') ... PROGRAM('/bin/sh')) ADDUSER WEBSRV DFLTGRP(IMWEB) OMVS(UID(0) HOME('/usr/lpp/internet') ... PROGRAM('/bin/sh')) ADDUSER PUBLIC DFLTGRP(EXTERNAL) OMVS(UID(998) HOME('/') ... PROGRAM('/bin/sh')) RDEFINE SURROGAT BPX.SERVER.WEBADM UACC(NONE) RDEFINE SURROGAT BPX.SERVER.PUBLIB UACC(NONE) PERMIT BPX.DAEMON CLASS(FACILITY) ID(WEBSRV) ACCESS(READ) PERMIT BPX.SERVER CLASS(FACILITY) ID(WEBSRV) ACCESS(UPDATE) PERMIT BPX.SRV.WEBADM CLASS(SURROGAT) ID(WEBSRV) ACCESS(READ) PERMIT BPX.SRV.PUBLIC CLASS(SURROGAT) ID(WEBSRV) ACCESS(READ) RALTER PROGRAM * ADDMEM('SYS1.SCEERUN'/'volser'/NOPADCHK) UACC(READ) RALTER PROGRAM * ADDMEM('CBC.SCLBDLL'/'volser'/NOPADCHK) UACC(READ) RALTER PROGRAM * ADDMEM('SYS1.LINKLIB'/'volser'/NOPADCHK) UACC(READ) SETR RACLIST(FACILITY) REFRESH SETR WHEN(PROGRAM) REFRESH SETR CLASSACT(SURROGAT) if not already done Figure 8. Web server security setup 42 Domino for S/390 and Web Server Integration 4.5 Defining the started procedure The started procedure for the Web server needs to be set up. This is shown in Figure 9. //WEBCANDY PROC P1='-B', // P2='-r /web/candy/httpd.conf', // P3='-p 8100 -vv', // LEPARM='ENVAR("_CEE_ENVFILE=/web/candy/httpd.envvars")' //*-------------------------------------------------------//* -vv # VERY VERBOSE trace to stderr //* -p nnnn # Port nnn (default 80) //* -r /etc/httpd.imwebbox.icssec # RuleFile path/name //*-------------------------------------------------------//WEBSRV EXEC PGM=IMWHTTPD,REGION=0K,TIME=NOLIMIT, // PARM=('&LEPARM/&P1 &P2 &P3') //SYSIN DD DUMMY //OUTDSC DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSOUT DD SYSOUT=* //SYSERR DD SYSOUT=* //STDOUT DD SYSOUT=* //STDERR DD SYSOUT=* //CEEDUMP DD SYSOUT=* Figure 9. Web server started procedure setup Note Remember that the PARM field in JCL can be just 100 characters even if the parameter input to the Web server is larger. See OS/390 e-business Infrastructure: IBM HTTP Server 5.1 for OS/390 - Customization and Usage, SG24-5603, for details on how to overcome this limitation. Basic IBM HTTP Server installation 43 4.6 Authorizing the started procedure to RACF Having defined the Started Procedure, you need to authorize it to RACF and refresh the STARTED class. This shown in Figure 10. RDEFINE STARTED WEBCANDY.** STDATA(USER(WEBSRV)) SETR RACLIST(STARTED) REFRESH We called our Started Procedure WEBCANDY for the C(andy) Web server. It's up to you to choose a suitable name. Figure 10. Authorizing the Started Procedure 4.7 Creating a homepage To begin with, create a small homepage in your directory for Web content /web/server1/pub and call it index.html. Figure 11 shows a simple homepage to get you started. <html><head> <title>HTTP 5.1 Project - The Candy Web Server on Port 8120</title> <head><body bgcolor="FFFFFF"> <h1>Welcome to the CANDY Web server on port 8120</h1> <p> This is IBM HTTP Web Server V5.1. <hr> Follow this link to access the <a href="/Server/">Remote Server Administration</a>. </html> Figure 11. A simple homepage 4.8 Starting the Web server The Web server is now ready to start. Starting, stopping and monitoring are described in Chapter 5, “Operating the Domino for IBM HTTP Server” on page 45. To use the Web server with the Domino for IBM HTTP Server connector, you need to do some additional configuration steps as described in Chapter 2, “Configuring the Domino for IBM HTTP Server” on page 5. 44 Domino for S/390 and Web Server Integration Chapter 5. Operating the Domino for IBM HTTP Server This chapter introduces you to the operation of the of Lotus Domino for IBM HTTP Server, also known as the Web connector, which involves the operation of both IBM HTTP and Domino/390 servers. The actual Domino for IBM HTTP Server runs within the IBM HTTP Server process as a GWAPI plug-in. In order to function properly, the corresponding Domino/390 server must be started prior to bringing up the Domino for HTTP Server. Due to the way the two servers interact, their startup and shutdown must be coordinated in the proper sequence. The following sections describe various methods for: • Starting/stopping the servers • Different ways to operate the servers • Monitoring the status of the servers • Coordinating the server start/stop sequence for the Web connector • Dealing with abnormal terminations We hope that the information in the following sections will provide you with the basic understanding of how to operate the servers. Gaining day-to-day experience with the servers will allow you to hone your operational skills, and craft operational procedures appropriate for your shop. Detailed information can be found in the Lotus publication Administering the Domino System, Volumes 1 and 2, and in the redbook Lotus Domino for OS/390 Release 5: Installation, Customization and Administration, SG24-2083. 5.1 Starting Domino for OS/390 There are several ways to start the Domino/390 server: • By using a dedicated telnet session • By using DOMCON (Domino Console Interface package) • By using notes.rc (a script which executes Domino in the background) This section discusses the two most common ways to start the Domino server: telnet session and DOMCON. Starting the server from a telnet session is useful for post-installation testing and debugging. DOMCON can be easily integrated with OS/390 system operations, and is recommended for running in production mode. © Copyright IBM Corp. 2000 45 The third method, notes.rc, is a UNIX script which starts Domino as a background process. You then communicate with Domino using the UNIX comcon command. A UNIX systems programmer could configure notes.rc to control multiple servers, but this would take considerable effort, and would be hard to troubleshoot. Therefore we limit our discussion to the first two methods. 5.1.1 User ID considerations for starting the Domino server The server should be started with the OS/390 user ID which was associated with the server during the server setup process. The Domino server processes run in a set of OS/390 address spaces. These address spaces are named with the server user ID plus a number (for example, for a server with a user ID of DOMINO, address spaces are named DOMINO1, DOMINO2... DOMINOn). Whichever method is used to start the server, that server user ID must be assigned a UNIX UID which has read/write access to the objects in the server's notesdata directory. This user ID must also have write authority to the /tmp directory. The user ID associated with each server owns the /notesdata directory and files, shared memory segments, message queues, and semaphores. For these reasons, different Domino servers should be run under unique user IDs. This allows you to identify which address spaces belong to which server. It also allows each server to access and clean up its own resources at termination. Also important to note is that you cannot start two instances of the same Domino server. Warning Never start a Domino server under an ID with superuser authority(uid=0). Stopping a server whose UID=0 can be disastrous to your system, as it will bring down kernel processes! If a server ends abnormally, it may fail to clean up its interprocess communication shared resources. Therefore you cannot restart a server until you have checked for and cleaned up hung processes and stranded IPC resources. The use of DOMCON prevents this situation from happening, 46 Domino for S/390 and Web Server Integration because it enforces termination cleanup and startup verification that there are no server-owned shared resources in existence. In some circumstances, it will be of value to remove the layer added by DOMCON and start a server from telnet to help debug a problem situation. For this to be of value, it is important that the UNIX environment for the server under telnet and under DOMCON are identical. Special care must be taken to keep the server's .profile and the DOMCON domino_global_env synchronized. 5.1.2 Starting the server with Telnet To start the server: 1. Rlogin or telnet into OS/390 UNIX with the user ID that owns the server. Note that operating the Domino server from the OMVS shell is not supported. Caution Make sure that this user ID is not UID 0! 2. Change to the proper notesdata directory: cd /notesdata1 (server’s notesdata) 3. To issue the server startup command, type: /usr/lpp/lotus/bin/server The terminal will then become a dedicated server console. Details of the startup process will be logged to it. In general, the server is considered to have started when the Database Server Started message appears on the console, at which point clients should be able to connect to the server. As soon as the server start command is issued from one of these sessions and the server begins execution, the session becomes part of the server's console, and can be used to monitor the server, issue server commands, and eventually shut down the server. If the telnet session is lost or closed, the Domino server continues to run. You cannot reconnect the server console directly, but you can operate the server and browse its log even when the telnet console has been lost by using the following: • The console utility (available with Domino R5 for UNIX platforms) • The comcon command Operating the Domino for IBM HTTP Server 47 Even with these options, in our opinion, running a Domino server from a telnet or rlogin session should be limited to test or debugging. We suggest the use of DOMCON as more appropriate for a typical OS/390 operating environment. 5.1.3 DOMCON In the OS/390 environment, the system tasks are operated from the OS/390 system console, and that is precisely what the DOMCON 3.1 package allows you to do with Domino. DOMCON monitors the Domino server. It intercepts Domino console output, reroutes it, and displays it on the OS/390 system console. DOMCON also provides the ability to start, stop and send commands to Domino from the OS/390 console. The use of the OS/390 console has the advantage of built-in console recovery support, automatically switching to alternate consoles in the event a console becomes disconnected. Typically, OS/390 consoles are secured from unauthorized access. In addition, OS/390 functions such as SDSF and TSO console facility make the OS/390 console access available from any authorized terminal/user ID. The current level of the package, DOMCON 3.1, is available for download from an IBM Web site at URL: http://www.s390.ibm.com/products/domino/domcon/dmcnmain.html The DOMCON package comes as part of a Notes discussion database that can be accessed on the Web from your browser. You may view and post questions to this database from your browser. You can also access this database by using the URL: http://www.support.lotus.com/domcon.nsf Note: We successfully tested the DOMCON V3 package during our residency project and found that a customer should strongly consider using it for their Domino operations, although it was not officially supported at that time. IBM intends to provide this support in a future release of Domino on S/390. 5.1.3.1 DOMCON procedures DOMCON provides three system procedures (started tasks): • DOMINS - Starts the Domino server • DOMINC - Issues commands to Domino server • DOMINK - Shuts down the Domino server 48 Domino for S/390 and Web Server Integration Note: This is only a partial list of functions provided by DOMCON Version 3.1. For detailed, version-dependent information, refer to documentation at the DOMCOM Web site: http://www.s390.ibm.com/products/domino/domcon/dmcnmain.html Through the use of these procedures, Domcon provides: • An automated and synchronized way to start the Domino for OS/390 server with other resources at system IPL time. • Management of all Domino partitioned servers on the OS/390 image from the same console. • Remote access with SDSF/console functions with appropriate controls. • The ability for operations to send server commands to the Domino for OS/390 server from the console. • Operations with the capability of performing an orderly shutdown of the Domino for OS/390 server during OS/390 shutdown. • An interface to automation systems that can start, stop, or send commands to the server in response to error situations. • Synchronized OS/390 resource utilization. Signals the Domino for OS/390 server to start replications at the completion of the batch processing (may be variable on end-of-month/week). • Verifies that DOMINO has been assigned the required address space size (AS) of 2 GB and unlimited CPU time. • A RACF-protected data set to store Domino passwords (server.id) and the ability to automatically feed them into the server's input stream at startup. • The ability to set unique environment variables on a server-by-server basis. • Automated startups with secure server.id files. • An interface from UNIX System Services which allows selected users to send commands to selected Domino servers and see the responses. RACF Surrogate authority is used to control which users can access which servers. • Ability to establish filters that limit which messages are routed from the Domino servers to the OS/390 operator console. • The Domino USS address spaces created by DOMCON will not inherit the parent limits (AS size, time, and others), but instead will be stamped with the values corresponding to the system’s BPXPRMxx settings. Operating the Domino for IBM HTTP Server 49 • Optionally synchronizes the starting and stopping of a companion IBM HTTP Server for a Web connector configuration. 5.1.3.2 Starting the Domino server with DOMCON With DOMCON, the Domino for OS/390 server is started by submitting the DOMINS proc with the following OS/390 console command: S DOMINS,SRVID='DOMINO1',BYPASS='N',TYPE='N' The options may be entered in any order and, depending on the effect desired, some of the options can be allowed to default. Defaults are set in the domino_global_env file. If you are only running one server, you can set it up as the default in domino_global_env2 and then simply start DOMINS: S DOMINS The following commands will start the Domino for OS/390 server associated with the SAF (RACF) user ID DOMINO2 and bypass the IPCS semaphore checking. This can be used to start Domino after an abend. S DOMINS,SRVID='DOMINO2',BYPASS='y' S DOMINS,BYPASS='y',SRVID='DOMINO2' Here is a description of DOMCON startup parameters: SRVID: The value assigned to this keyword determines which partitioned Domino server to start. The server name specified must match the SAF (RACF) user ID corresponding to the server to be started, with a relationship to its notesdata defined in the DOMCON domino_global_env file. (The domino_global_environment file contains configuration values for DOMCON.) If SRVID is omitted, DOMCON uses the default server specified in domino_global_env. This value is case-sensitive and must be entered in uppercase. BYPASS: The value assigned to this keyword indicates if DOMCON should ignore the error condition of IPCS semaphore resources still associated with the Domino for OS/390 SAF user ID. The start option validates that no process, IPCS memory, or IPCS semaphore exist. If they do, this is an indication that the Domino for OS/390 server may still be running. It is possible that the kill process will not be able to remove some remaining IPCS semaphores. By specifying y on BYPASS, you can tell DOMCON to start the Domino for OS/390 server even if IPCS semaphore resources are still present. By default, or by using n, the normal verification process will take place. 50 Domino for S/390 and Web Server Integration TYPE: This option tells DOMCON how to invoke the startup process. The possible values are N/S/R. N This is the default and indicates a normal start. It causes DOMCON to start the Domino server and then start the monitor processes. This functions just like the 2.2 release and previous release did. S This causes the monitor process to only stay active until the Domino sever has started. Once the server is started, the monitor session will self-terminate and no more messages will be routed to the console. The server started status is detected by scanning for a particular string all the messages routed to the console. The domcon_srv_startup environment variable in domino_global_env determines what string to search for and XXXXXX_start_srv_sleep indicates how long before a time-out condition is detected. If the search string has not been found before the time out, DOMCON issues an error to the console and then terminates the monitor. If this condition occurs, the operator should be responsible for validating the health of the server, which should be in question since the expected started-status string was never received from the server. R This indicates that this invocation should only restart the monitor process and not the actual server. When DOMINS is started it performs the following functions: 1. Validates and sets the debug level to be used 2. Parses and validates options passed 3. Sets up the global environment 4. Determines which Domino partition to start based upon the RACF user ID 5. Changes the address space name to match any alias 6. Switches to the correct user ID for address space 7. Reset the address space settings to match your BPXPRMxx 8. Validates if resources exist for the RACF user ID 9. Defines/renames Domino for OS/390 stdin and stdout files 10.Starts the Domino for OS/390 server in the background 11.Starts the monitor process in the background 12.Optionally starts the companion IBM HTTP Server Operating the Domino for IBM HTTP Server 51 13.Terminates Earlier, we mentioned that using DOMCON is the best way to integrate the operation of the Domino server with the general OS/390 system production operation. It is suggested that DOMCON not be used until it has been proven that the server works without problems from a telnet session; otherwise it can be hard to determine whether a failure is due to Domino itself or to the DOMCON setup. 5.2 Stopping Domino for OS/390 Once the server is up and running, the options to stop the server depend on the way it was started. We will cover only stopping the server from the telnet session and with DOMCON. To learn more about the other options, refer to Lotus Domino for OS/390 Release 5: Installation, Customization and Administration, SG24-2083. 5.2.1 Stopping Domino from the telnet or rlogin session When the server has been started from a telnet or rlogin session, this session becomes the Domino server console. To stop the server from the server console, enter either exit, quit, or simply q. Any of these commands will initiate an orderly server shutdown process. 5.2.2 Stopping Domino with DOMCON To terminate a Domino for OS/390 server, use the DOMINK procedure. It can be issued with the following options: S DOMINK,SRVID=’DOMINO1’,FORCE=’N’,TYPE=’N’ To shut down the default server, as defined by the settings in the domino_global_env, you can simply enter: S DOMINK Even if Domino was started via telnet, it is useful to be able to stop it with DOMCON. It can be used to shut down Domino if the telnet session were to be lost. During our testing, we successfully used the DOMINK proc for the shutdown and cleanup of a hung server by using the following commands: S DOMINK,SRVID='DOMINO1',FORCE='Y',TYPE='Q' Here is a list of the DOMINK options which can be entered in any order: SRVID: 52 This parameter value tells DOMCON which partitioned Domino for OS/390 server to shut down. The server name specified must Domino for S/390 and Web Server Integration match the SAF(RACF) user ID used to start the server. If no SRVID is specified, DOMCON uses the default server specified in domino_global_env. This value is case-sensitive and must be entered in uppercase. FORCE: This parameter tells DOMCON to bring the server down and purge all resources while ignoring errors. It is possible an error condition (input log destroyed/damaged) could be detected by DOMCON. Under normal execution, DOMCON will terminate the shutdown processes. By specifying y on the FORCE option, DOMCON will continue the shutdown process and purge resources (sigterm, sigkill, ipcs remove) even if errors are detected. TYPE: This parameter tells DOMCON how the shutdown request is to be processed. N This is a normal shutdown, the default. It causes the quit command to be sent to the Domino server and then waits for the server to shut down (or time out), at which point any leftover resources are cleaned up. M This is to shut down the monitor processes only. The Domino server is left running. Q This is used for a quick shutdown. This allows you to have DOMCON go immediately to the clean-up section of the shutdown process. For example, you have 5 minutes (300 seconds) defined as the wait time before a shutdown times out and one of your servers has failed. If you do not specify TYPE=’Q’, then the DOMINK request will wait for 5 minutes before cleaning up the address spaces and IPCS resources. By specifying TYPE=’Q’, the 5-minute interval is skipped. When DOMINK is started, it performs the following functions: 1. Optionally issues a stop command for the companion IBM HTTP Server 2. Validates and sets the debug level to be used 3. Parses and validates the options that are passed 4. Sets up the global environment 5. Determines which Domino partition to start based upon the RACF user ID 6. Switches to the correct user ID for address space 7. Validates the environment to be used during shutdown 8. Issues commands to the Domino for OS/390 server to have it terminate 9. Waits for Domino for OS/390 to terminate Operating the Domino for IBM HTTP Server 53 10.Finds any processes still associated with the Domino for OS/390 RACF user ID and issues a SIGTERM to them 11. Waits for SIGTERM to process 12. Finds any IPCS memory resources and releases them 13. Finds any IPCS semaphore resources and releases them 14. Terminates When the Server shutdown complete message appears on the OS/390 operator’s console, your Domino server has been terminated. 5.3 Operating the Domino server The Domino server on OS/390 can be operated from a number of different user interfaces, including: • rlogin or telnet • Domino Administration Client • Domino Web Administrator Client • OS/390 console using DOMCON • comcon interface • cconsole interface In general, these options provide somewhat different functionality. For example, a telnet session can start the Domino server and, once started, it can become the server console, from which you can issue server commands and eventually shut it down. Another option, the administration client, is a powerful interface which, as part of the functionality, includes a remote server console from which you can operate the server. In our project, while testing the 5.01 Domino code, we used the Domino administration client, telnet and DOMCON. These three options are discussed in this chapter. Refer to Lotus Domino for OS/390 Release 5: Installation, Customization and Administration, SG24-2083, for an in-depth look at the possible ways to operate the Domino server. For Domino server commands, you can also refer to the Domino Administration Guide at URL: http:/notes/net/notesua.nsf 54 Domino for S/390 and Web Server Integration 5.3.1 Operating the server from Telnet As described in 5.1.2, “Starting the server with Telnet” on page 47, you can start the server from a workstation telnet or rlogin session to the OS/390 UNIX host. As soon as the server start command is issued, and the server begins execution, the session becomes the server's console, and can be used to issue server commands and monitor the server, as well as shut it down. 5.3.2 Domino administration client Lotus Domino Release 5 provides a specific administration client called the Domino Administrator. The administration client can be selected during setup of your Notes client, or can be installed separately. To be able to use the administrator functions, ensure you are using an ID which has administrator rights to the server. For example, we used the administrator ID created at first server install time. If needed, you could also authorize other IDs to operate and administer the Domino server. This application is the main interface for any Domino-related administration task. The Administrator allows you to perform Domino server commands and monitor the server from your workstation. You can initiate server shutdown, but obviously, you cannot start a server because the client cannot interact with OS/390 to request server startup. In addition, since the server console log is written to the log.nsf database on the server, a Notes Client with the proper access can read and analyze it. 5.3.3 Web administrator client Since Domino R4.6, there is a Web administrator client interface that allows a user with the proper access authority to perform server administration functions. Domino R5 has enriched the options available through this interface. To find more information about the Domino administration client and Web administrator client, as well as Domino server commands, refer to Administering the Domino System, Volumes 1 and 2 and Lotus Domino for OS/390 Release 5: Installation, Customization and Administration, SG24-2083. 5.3.4 Operating the server with DOMCON As detailed in 5.1.3.2, “Starting the Domino server with DOMCON” on page 50, you can start the server from the OS/390 console with proc DOMINS. Operating the Domino for IBM HTTP Server 55 5.2.2, “Stopping Domino with DOMCON” on page 52 describes how you can stop the server from OS/390 console with proc DOMINK. An additional proc, DOMINC, allows you to issue commands to the servers. These procedures can be integrated with system automation. 5.3.5 Recommendations for Domino operation Based on the previously discussed options we recommend the following: • For post-installation verification, such as newly installed server startup, use rlogin or telnet. • For a production environment, start the server with DOMCON from the OS/390 operator console. Once started, the server can be administered from the Notes administration client or Web administrator client. • When you run into problems, or for testing, start Domino from a telnet or rlogin session for problem determination. As in indicated in 5.1.1, “User ID considerations for starting the Domino server” on page 46, it is important that the server environment under telnet and under DOMCON is identical. • Use DOMCON DOMINK proc to force shutdown/cleanup after abend. • The Domino administrator should become proficient in using the remote console of the Domino administration client to monitor and operate the server. 5.4 Monitoring the status of the Domino server The most straightforward way to determine the status of a server is to issue the appropriate server console commands. It is not the objective of this section to teach server operation, but only to give some tips that may be helpful. Again, the options will depend on how the server was started. 5.4.1 Issuing server commands from a telnet/rlogin session In this case, just issue the desired command in response to the console prompt(>); for example, to display server status: sh server 5.4.2 Issuing server commands with DOMCON For this you can use the DOMINC procedure, which has a very similar format to the previously discussed DOMCON procedures. For example, to issue the show server command to the DOMINO2 server, type: S DOMINC,SRVID=DOMINO2,CMD="sh server" 56 Domino for S/390 and Web Server Integration 5.4.3 Valuable OS/390 console commands A skilled console operator can help you to display information related to the server that will be of value to you. In case you are unfamiliar with the necessary commands, we list several of them here. The MVS command D A,L shows all of the active address spaces. The address spaces of the Domino server are prefixed with the user ID which started the Notes server. To display the UNIX processes related to a specific UNIX ID (for example the ones related to the server started under DOMINO1), you can issue the following command: D OMVS,U=DOMINO1 To display all existing UNIX processes, you would issue: OMVS,A=ALL 5.4.4 UNIX System Services environment UNIX is known for its rich command set, but it is virtually impossible to cover it all here. Instead, we will describe a few of these commands. To display information about UNIX processes, issue: ps -ef You can also check if the Domino tasks are listening on their individual TCP/IP ports by using the onetstat command. If you have multiple stacks running you can specify a stack with the -p option. The standard output of the onetstat command shows the status of all TCP/IP socket connections. To see if the Domino server actually communicates over the TCP/IP stack, use the -b options, which show the number of bytes transferred through the socket connections: onetstat -p TCPIPOE onetstat -b -p tcpipoe 5.5 Coordinating server start/stop sequence for the Web connector The proper sequence for operating the Domino for HTTP Server is as follows: Startup: 1. Start the Domino server. Operating the Domino for IBM HTTP Server 57 2. Start the associated IBM HTTP server. You should now be able to access Domino databases from a Web browser. Shutdown: 1. Stop the IBM HTTP server. 2. Stop the Domino server. Warning If Domino abends, you must bring down the associated IBM HTTP Server prior to restarting Domino. Restart: 1. Use the MVS D A,L command and the UNIX ipcs -bo command to confirm that all Domino and HTTP processes/shared resources are gone for that Domino server. 2. If there are leftover processes, use cleanup procedures as detailed in 5.6, “Dealing with abnormal terminations” on page 58 3. Start the Domino server. 4. Start the IBM HTTP Server. 5.5.1 Coordinating a start/stop sequence with DOMCON DOMCON Version 3.1 provides the option to synchronize the start/stop sequence of both servers, Domino and IBM HTTP server. This is controlled by variable DOMINO_390WAS in the domino_global_environment. By specifying this option, DOMCON will issue a Start (S) on the operator’s console 30 seconds after the Domino Server is started. Also, DOMCON will issue a Pause (P) at server shutdown. The environment variable should be set to the procname of the Web Server that has the Web Connector enabled on it. 5.6 Dealing with abnormal terminations If the Domino server crashes or for whatever reason hangs during shutdown, you may encounter problems in subsequent attempts to re-start the same server. Most likely, this will be due to existing interprocess communication resources, such as shared memory and semaphores, that had been allocated by the previous server instance but never released due to the abnormal 58 Domino for S/390 and Web Server Integration termination. It is important to understand that the shared memory is retained even if you cancel the Domino server address spaces. Therefore it is a requirement to have a procedure in place to clean up leftover resources before a new server instance can be started. DOMINS has a startup validation that checks for existing resources. Note that these resources could very well be tied to a healthy active server, and not the result of a failed one. In that case, it would be incorrect to start a duplicate instance of the same server. If you find a situation where you need to clean up after an abnormal server termination, the following sections list some options. 5.6.1 Attempt to force a shut down of the server If at all possible, try to issue a termination command: • For telnet-started servers, if the console service is still operational, you can type: exit or quit and press ENTER If not, if the telnet session seems to be healthy, you can proceed with the clean up. Otherwise, the telnet session itself will have to be subject to the clean up. • For DOMCON-started servers, from the system console you should issue a DOMINK command for the server. It will attempt an orderly shutdown and then clean up. S DOMINK,SRVID=’DOMINO2’ 5.6.2 Forced cleanup with DOMINK No matter how the server was started, you can always issue a DOMINK command for the server. If you know the server is dead or unresponsive, you can bypass the wait and have it go into forced cleanup: S DOMINK,SRVID=’DOMINO2’,FORCE=’Y’,TYPE=Q 5.6.3 Forced cleanup with nsd.sh You can use nsd.sh to clean up leftover processes and resources related with a server. You must do so from a UNIX System Services session, normally telnet. You have two options: • From a telnet session with login under the server ID, you can issue the following command: cd /notesdata1 (server’s notesdata) Operating the Domino for IBM HTTP Server 59 /usr/lpp/lotus/bin/tools/diag/nsd.sh -kill • From a telnet session with login under an ID that has superuser authority, you can issue the following command: cd /notesdata1 (server’s notesdata) /usr/lpp/lotus/bin/tools/diag/nsd.sh -kill -user domino_userid Beware that if you issue this command as superuser (UID=0) with no options appended, the effects can be disastrous, since it will attempt to clean up all resources and processes associated with UID=0. Warning Be sure that you use the -user operand with the ID corresponding to the server to clean up. Otherwise, the power of the superuser authority can cause havoc by destroying resources and processes. 5.6.4 Explicit kill of Domino processes If needed, you can explicitly kill the processes associated with a server: • First you need to determine which processes are active. • From SDSF or the MVS system console, you can use any of the following commands to find the processes: D A,L D OMVS,A=ALL D OMVS,U=DOMINO1 (or your server’s user ID) • From the shell, under the server ID or superuser: ps -ef | grep ‘DOMINO1’ (or your server’s user ID) • If any server processes are listed, you can proceed to kill the processes explicitly from the system console by one of the following means: • Determine the parent process ID (PPID) of the lowest numbered server process (for example, DOMINO11 of all DOMINO1n processes). Then issue, on the system console: F BPXOINIT,FORCE=PID# where PID# is the parent number for Domino processes. • From the UNIX shell you can issue: kill -s SIGKILL pid (same as kill -9 pid) where pid is the process ID number. 60 Domino for S/390 and Web Server Integration • Issue plain cancel commands from the console for each of the Domino processes: C DOMINO11 C DOMINO12 C DOMINO1n You will have to provide the ASID value if there are duplicate names: C DOMINO13,A=00nn C DOMINO13 (nn is the hex ASID number) • As a last resort, you can force the address spaces to remove them: FORCE DOMINO1,A=00nn,ARM (nn is the hex ASID number) 5.6.5 Explicit release of Domino resources If needed, it is possible to explicitly release any interprocess communication resources associated with the failed Domino server. To do so, you have to be able to list the resources first. From the shell, under the server ID, issue an ipcs -a command as shown in Figure 12. > ipcs -a Message Queues: T q q q ID KEY MODE OWNER 10 0x01016417 ----------- IBMUSER 131087 0x01016d52 ----------- IBMUSER 16 0x01016d94 ----------- IBMUSER GROUP IMWEB IMWEB LOTUSGRP CREATOR IBMUSER IBMUSER IBMUSER CGROUP CB IMWEB 0 IMWEB 0 LOTUSGRP 0 Shared Memory: T ID KEY MODE m 433221 0xf8138802 --rw-rw---m 1023050 0xf80ba002 --rw-rw---m 1023051 0xf80ba001 --rw-rw---- OWNER DOMINO1 DOMINI2 DOMINI2 GROUP LOTUSGRP LOTUSGRP LOTUSGRP CREATOR DOMINO1 DOMINI2 DOMINI2 CGROUP NATTCH LOTUSGRP LOTUSGRP LOTUSGRP Semaphores: T ID s 1723948 s 1461805 s 609840 s 609841 s 740914 OWNER DOMINI1 DOMINI1 DOMINO2 DOMINO2 DOMINI2 GROUP LOTUSGRP LOTUSGRP LOTUSGRP LOTUSGRP LOTUSGRP CREATOR DOMINI2 DOMINI2 DOMINO2 DOMINO2 IBMUSER CGROUP NATTCH LOTUSGRP 16 LOTUSGRP 16 LOTUSGRP 16 LOTUSGRP 16 LOTUSGRP 16 KEY 0xf80ba003 0xf80ba004 0xf8138a70 0xf8138807 0xf80ba270 MODE --ra-ra-----ra-ra-----ra-ra-----ra-ra-----ra-ra---- Figure 12. Listing interprocess communication resources Use the ipcs -a shell command to verify that all interprocess communication (IPC) resources are removed. IPC resources are not automatically released when a process terminates. Operating the Domino for IBM HTTP Server 61 The output shown in Figure 12 is from the ipcs -a shell command after a failed attempted to start a Domino server. The left-most column indicates resource type: q = message queue m = shared memory segment s = semaphore The next two columns are the ID and key. You can remove resources based on either the ID or key number. Notice that in the display above, there are mixed resources owned by two different Domino server user IDs: DOMINO1 and DOMINO2. To display only those resources of a certain type, and display the owner’s process ID, you can use: ipcs -pm ipcs -pq ipcs -ps (show shared memory) (show queues) (show semaphores) This is the output from the ipcs -pm command: > ipcs -pm Shared Memory: T ID KEY m 433221 0xf8138802 m 1088585 0xf80ba000 m 1023050 0xf80ba002 m 1023051 0xf80ba001 m 1547340 0xf8138800 m 367698 0xf8138801 MODE --rw-rw-----rw-rw-----rw-rw-----rw-rw-----rw-rw-----rw-rw---- OWNER DOMINO1 DOMINO2 DOMINO2 DOMINO2 DOMINO1 DOMINO1 GROUP LOTUSGRP LOTUSGRP LOTUSGRP LOTUSGRP LOTUSGRP LOTUSGRP CPID 352321566 117440536 117440536 117440536 1845493809 1845493809 LPID 704643129 1224736819 1224736819 1224736819 704643129 704643129 In the display above, the CPID column shows the owning process ID number. The commands to remove IPC resources are: ipcrm -m SharedMemoryID ipcrm -q QueueID ipcrm -s SemaphoreID ipcrm -M SharedMemoryKey ipcrm -Q QueueKey ipcrm -S SemaphoreKey Once you have removed the resources you can verify that they were all released by again using the ipcs -a command. 62 Domino for S/390 and Web Server Integration 5.7 Starting the IBM HTTP Server The most common way to run your server is to define a procedure in your system PROCLIB data set and start it from the operator console, as shown in Figure 13. S WEBBEAN $HASP100 WEBBEAN ON STCINRDR IEF695I START WEBBEAN WITH JOBNAME WEBBEAN IS ASSIGNED TO USER WEBSRV , GROUP IMWEB $HASP373 WEBBEAN STARTED IMW3534I PID: 637534259 SERVER STARTING IMW3536I SA 637534259 0.0.0.0:8110 * * READY Figure 13. Starting the IBM HTTP Server from the OS/390 console Notice that message IMW3536I identifies the server as a standalone server (SA). The fields with asterisks in the message are used to display WLM-related information. A sample procedure called IMWEBSRV is shipped with the IBM HTTP Server in SYS1.SAMPLIB. The procedure needs to run under the authority of the RACF user ID that you have defined to run the Web server. 5.7.1 Stopping the IBM HTTP Server Use the OS/390 STOP command to bring down your server instead of cancelling the address space with the OS/390 CANCEL command. Cancelling a standalone server might cause you to lose valuable trace and logging data since this data is buffered before being written by a logging thread. Figure 14 shows a normal stop of the IBM HTTP Server, which causes a SIGTERM signal to be sent to the server. P WEBBEAN IMW3540I SA 654311475 0.0.0.0:8110 * * STOPPING WORK IMW3541I SA 654311475 0.0.0.0:8110 * * TERMINATING NOW $HASP395 WEBBEAN ENDED Figure 14. Stopping the IBM HTTP Server from the OS/390 console Note: If your server is busy, and depending on what work needs to be stopped, in some cases it might take up to several minutes before you see the message: IMW3541I SA 654311475 0.0.0.0:8110 * * TERMINATING NOW Operating the Domino for IBM HTTP Server 63 You may see this if you are using persistent connections. The PersistTimeout parameter specifies the length of time to wait before closing a TCP/IP connection. The IBM HTTP Server does not shut down until this period has expired. 5.7.2 Controlling the IBM HTTP Server The IBM HTTP Server accepts a set of OS/390 MODIFY commands that allow you to make changes while the server is running. For example, you can use this facility to display statistics about your server, control the level of tracing, turn SMF recording on and off, turn debugging on and off for specific IBM HTTP Server modules, and restart your server. Figure 15 on page 64 shows the use of the MODIFY command to display configuration information, display server statistics, and turn very verbose tracing on. F WEBBEAN,APPL=-D CONFIG -D STATS -VV IMW3518I More trace enabled. (Very Verbose) IMW3501I Config: Hostname: wtsc59oe.itso.ibm.com, Port: 8110, SSL 702 Port: 443, Server root: /usr/lpp/internet/web/bean. Tracing: workthread, threadpool, dirbrw, http, html, format, bag, hash, groups, ruledb, log, error, request, timers, rules, status, pics, dns, proxy, proxycache, gc, time, lex, workqueue, tcp, ftp, javelinbase, javelincfg, javelinpics, nls, mempool, proxylock, icapi, cgi, ssi, connections, wbi, if, stringlib, selftest, gopher, fastcgi, resphdrs, mpool, frca, proxygroup, javelin. SMF recording is currently disabled. IMW3502I Stats: Threads running: 40, Threads idle: 40, Requests: 11, 703 Bytes rcvd: 3965, Bytes sent: 22243, Actv In Conns: 0, Actv Out Conns: 0. Figure 15. Use of the OS/390 MODIFY command to display server information Figure 16 shows the use of the MODIFY command to restart the server. A SIGHUP signal is sent to the running server which causes the server process to reload its configuration file. All client requests are disrupted until the restart process completes. F WEBBEAN,APPL=-RESTART IMW3537I SA 637534259 0.0.0.0:8110 * * RESTARTING IMW3538I SA 637534259 0.0.0.0:8110 * * RESTART SUCCESSFUL Figure 16. Use of the OS/390 MODIFY command to restart the IBM HTTP Server 64 Domino for S/390 and Web Server Integration For detailed information on the MODIFY command options available for controlling the IBM HTTP Server, refer to the chapter “Managing your Web server” in IBM HTTP Server for OS/390 Release 7, Planning, Installing, and Using, Version 5.1, SC31-8690. Other MODIFY commands are described in Table 7 on page 76. Note: Equivalent functions to those provided by the MODIFY command can also be invoked from your browser by using the Web Server Administration interface. Refer to 5.7.3, “Monitoring the IBM HTTP Server” on page 65 for a description of this interface. 5.7.3 Monitoring the IBM HTTP Server The Web server accepts line mode commands to display statistic and monitoring information as described in 5.7.2, “Controlling the IBM HTTP Server” on page 64. The IBM HTTP Server also provides a Web-based interface for administering the Web server, and also for consulting help files and product information. This interface employs frames for easier navigation, HTML forms for conveniently and accurately updating configuration information, and Java applets. 5.7.4 Accessing IBM HTTP Server administration IBM HTTP Server administration is accessed via a link on the default Front Page shipped with the Web server (see Figure 19 on page 69). You would probably not include this link on any publicly accessible page served by your server. Your security requirements determine how and to whom you make this facility available (or indeed, whether you make it available at all), as we discuss in 5.7.8, “Administration security considerations” on page 76. By default, HTTP Basic Authentication (user ID: webadm) is used to control access to Web Server Administration interface. There are some specific browser requirements for using this facility, including support for HTML forms and for the Java Development Kit (JDK) 1.1.4. In practice, this means either Netscape Navigator V4.04 supplemented by the JDK 1.1.4 SmartUpdate available from the Netscape download site, or Microsoft Internet Explorer V4.0. At the time of writing, the latest version of Netscape Communicator is 4.7 with integrated JDK 1.1.5. If using Netscape, you can check your installed JDK level by starting the Java Console and reading the startup messages: Netscape Communications Corporation -- Java 1.1.5 Type '?' for options. Symantec Java! ByteCode Compiler Version 210.065 Operating the Domino for IBM HTTP Server 65 Copyright (C) 1996-97 Symantec Corporation You need to enable both Java and JavaScript in your browser and to specify that the cached document always be compared to the network document. The latter requirement is to ensure that the user receives accurate feedback when submitting forms. In Netscape Navigator V4 these options are set by selecting Edit/Preferences as illustrated in Figure 17. Figure 17. Enabling Java options in Netscape Navigator In Microsoft Internet Explorer (MSIE), these options are set by selecting View/Internet Options as illustrated in Figure 5.7.5 on page 67. For MSIE version 5, select Tools/Internet Options. Then, click the Settings button inside the Temporary Internet Files box (this is the same for both versions of MSIE). 66 Domino for S/390 and Web Server Integration Figure 18. Enabling Java options in Microsoft Internet Explorer 5.7.5 Functions of the configuration and administration forms Web server Administration provides you with a graphical user interface (GUI) for managing your Web server. It allows you to: 1. View and update the server configuration. The use of HTML forms provides a potentially more readable display of configuration data and a more accurate way of updating it than is possible by directly editing the httpd.conf configuration file. One limitation, however, is that it is not possible using Web Server Administration interface to enter comments into your configuration file to describe and time stamp your changes. 2. Restart the server. This is a convenient way of testing changes to your server configuration that take effect on restart. Not all changes are in that category. Refer to Appendix C in IBM HTTP Server for OS/390 Release 7, Planning, Installing, and Using, Version 5.1, SC31-8690 for a list of configuration changes that require the server to be stopped and then started again. For Operating the Domino for IBM HTTP Server 67 such changes (which are grouped under a single Basic form in Web Server Administration), you need to use either the console or UNIX System Services to stop and start the IBM HTTP Server, but you do not need to restart your browser or re authenticate. 3. Display statistics and usage reports. Web Server Administration provides a more comprehensive and readable display of server statistics than is provided by the MODIFY command. It also gives you some very useful reports on the usage of your server, including details of entry and exit links, most popular links, and users from whom requests have originated. 4. Access online copies of documentation and help information. You can access the IBM HTTP Server publications via your browser, and also a range of help information, including help on specific forms and more general help on various aspects of administering the IBM HTTP Server. One obvious requirement for using the Web Server Administration interface is that the Web server must be running. If you wish to make configuration changes when the server is not running, then of course you have to directly edit the httpd.conf file. In 5.7.7, “Mapping Web Server Administration functions” on page 75 we summarize the configuration changes and reporting options available with Web Server Administration. 5.7.6 Using the Web Server Administration interface The following sections give you an idea of the content and flow of the Web server administration facility. Of course, only by using it yourself can you develop a close familiarity with its functions and interface, and decide whether it is the right administration tool for your organization. 5.7.6.1 Front page and authentication Figure 19 on page 69 shows the default IBM HTTP Server Front Page, with the authentication window that is presented when you click CONFIGURATION AND ADMINISTRATION FORMS. You are also presented with this authentication prompt if you click HOW DO I GET STARTED? on the same Front Page. Regardless of the path you take, you are only prompted once for your user ID and password, provided your browser continues running. 68 Domino for S/390 and Web Server Integration Figure 19. IBM HTTP Server configuration and administration authentication 5.7.6.2 IBM HTTP Server introduction page Figure 20 on page 70 shows the introduction page following successful user authentication. Note some of the key navigation aspects of Web server administration that are visible on this page. Operating the Domino for IBM HTTP Server 69 Figure 20. IBM HTTP Server introduction page On the left is a frame that displays a menu of administration forms, or expandable headings for such forms. The selected form or text is displayed to the right of the frame. At the top of the window is a title bar for the current form. Apart from the title, two small buttons are always displayed on this bar, at the right-hand end: an exclamation mark for restarting the server, and a question mark for accessing help. Clicking the Restart button is a convenient way of testing or implementing configuration changes that do not require the server to be stopped and then started again in order to take effect. Clicking the help button displays, in turn, a small menu of three levels of help, which are depicted in subsequent figures. Just below the title bar you see a status indicator, initially set to Ready. During and following execution of an action such as submitting a form, requesting information, or restarting the server, this indicator displays the current status of that action. 70 Domino for S/390 and Web Server Integration The use of frames means that the current forms or topics are always visible and selectable on the left side of the screen. Help panels are always launched in a new window. These features of Web Server Administration make for easier navigation, and in particular reduce the need to use the Back button on your browser. You are initially presented with the menus for the IBM HTTP Server, but you can select the menus for the proxy server by clicking IBM Web Traffic Express, which is initially at the bottom of the left frame, and then switch between the two sets of forms. 5.7.6.3 Web Server administration form Figure 21 shows a typical page corresponding to the selection of a particular form in the forms menu (the Fast Response Cache Accelerator form, in this case). . Figure 21. Sample IBM HTTP Server administration form Operating the Domino for IBM HTTP Server 71 This example gives you an idea of how the forms interface works. Apart from fields for entering new information, the form also presents you with existing values of related fields that you can choose to keep or to override. 5.7.6.4 Form help page Figure 22 shows the Help page for the FRCA form. We obtained this page by clicking the Help icon while the corresponding form was displayed and then selecting Field help (which is always context-sensitive). This information is displayed in a new window, enabling us to easily switch between a given form and its help information. Figure 22. Sample IBM HTTP Server administration form help 5.7.6.5 HTTP server help contents pages Figure 23 shows the Contents tab of the main help page. You can arrive at this page by several routes, for example by clicking the Help button and then selecting How do I?, or by clicking HOW DO I GET STARTED? from the Front Page. 72 Domino for S/390 and Web Server Integration Figure 23. IBM HTTP Server help contents The items in the Contents menu provide information on forms and on specific actions, as well as general information on various topics. The example in Figure 23 shows information resulting from the selection of the Security topic from the menu. 5.7.6.6 HTTP server help index pages Figure 24 shows the Index tab of the main help page. You can arrive at this page by several routes, for example by clicking the Help button and then selecting Index, or simply by clicking the Index tab when you have the Contents page already displayed. Operating the Domino for IBM HTTP Server 73 . Figure 24. IBM HTTP Server help index Menu links relating to the Web server itself are of the form /admin-bin/helpout/hlpxxxxx, where xxxxx identifies the particular help topic. The Index menu also includes help items for FRCA. The example in Figure 24 shows information regarding the page (form) for enabling and tuning FRCA. 5.7.6.7 Navigation summary Figure 25 on page 75 illustrates the high-level flow of the Web Server Administration panels. The main features to observe in this diagram are the authentication process, the implementation of Web Server Administration as a Java applet, and the interaction between the execution environment (when submitting a form) and the help environment (for obtaining information about a form or some other aspect of the administration of the IBM HTTP Server). 74 Domino for S/390 and Web Server Integration Figure 25. Web Server administration flow 5.7.7 Mapping Web Server Administration functions The Web Server Administration GUI is intended to make the configuration process simpler, more intelligible, and more accurate. For this reason, Web Server Administration does not generally expose directive names to the user, but instead uses functional language to describe the purpose and contents of its configuration forms. In this way, you can (in theory) administer your Web server without ever directly seeing your httpd.conf file. In practice, however, you need to edit the configuration file if you want to add comments to it or if you want to make configuration changes when the server is not actually running. An example of a common administration function is to add mapping directives ( Map, Pass, Fail, Exec, Redirect) to map URLs to specific files. The form for this particular kind of configuration change is called Request Routing in the forms menu. If you did not know that, you could click the entry for the Pass mapping rule in the Help Index, where you are referred to the Request Routing form (as well as given comprehensive tutorial information on how these directives work). Operating the Domino for IBM HTTP Server 75 Some of the IBM HTTP Server functions that are provided with the OS/390 MODIFY command can be invoked from Web Server Administration. Table 7 provides a correlation of those functions with specific administration forms. Table 7. MODIFY command options using Web server administration forms Function MODIFY command option Web Server Administration form Display basic configuration information -d config Basic Display server statistics -d stats Server Activity Monitor: Activity Statistics Control SMF reporting -smf [perf|config] -nosmf [perf|config] Logging and Reporting: Global Logging File Configuration Settings Restart server -restart Click on Restart button Display version -version Introduction 5.7.8 Administration security considerations For some organizations, Web Server Administration is a convenient and easy-to-use facility for administering your Web server. However, you should evaluate the use of the Web interface against your security requirements. To the extent that your Web server is a critical resource, you need to restrict access to its operator facilities as you would to the operator facilities of any of your critical subsystems and applications. However, some new considerations arise if you are thinking of accessing Web Server Administration over the Internet. Again, these considerations are not unique to the Web interface, but would also apply if you were thinking of providing operator access via the Internet to any of your internal systems. 5.7.8.1 Authentication and confidentiality By default, the IBM HTTP Server provides an administrative user ID (WEBADM) and a Protection directive called IMW_Admin, which uses HTTP Basic Authentication (non-encrypted user ID and password) to protect access to Web Server Administration. This does not provide adequate security for such a critical application in an Internet environment. Not only is the authentication weak, but your administration traffic is visible to an eavesdropper, revealing potentially sensitive information about your Web server. Therefore, some stronger form of authentication is warranted, for example: 76 Domino for S/390 and Web Server Integration 1. Use SSL with server authentication to provide encryption of the Web server administration session, and in particular of the user ID and password, provided you are able to restrict all traffic to the SSL port (443, by default). 2. Use SSL with server and client authentication, providing strong authentication of the client, as well as encryption of the session. Of these options, the second is obviously the more secure and flexible. 5.7.8.2 Administration access control To the extent that use of a workstation cannot be reliably equated with a particular user, you need to exercise care in the use of Web Server Administration, even when the workstation is attached to your intranet. If you are using Basic Authentication, your user ID and password are cached in browser memory after you respond to the authentication prompt, and are automatically transmitted with each subsequent request to access a protected page. This authentication information is retained in memory as long as your browser remains active, even if you close your Web Server Administration window. You should keep this in mind if there is a possibility of your browser being shared with or accessed by other users. Another consideration is that the IBM HTTP Server allows multiple administrators to be concurrently signed on with the same Web Server Administration user ID. This could result in operational problems if those administrators attempted to perform conflicting actions. Again, this is something that could be avoided with a combination of strong controls on the administration user ID and password and stronger client authentication. For example, imposing a requirement for a client certificate would solve this problem, as well as the other problems previously identified. If you do not pursue the certificate option, we recommend that you not use the supplied WEBADM ID for managing your Web server. Rather, you should remove that ID from the mask parameter of the IMW_Admin protection directive, and include the RACF TSO user ID of a trusted administrator (unless you have assigned the WEBADM ID to your trusted administrator). Your ultimate recourse, if you are concerned with the security of the Web Server Administration interface, is to disable the facility by setting appropriate directives in the configuration file, for example: • Change the Pass directive for /admin-bin/webexec/* to a Fail directive. • Comment out the Exec directive for URLs of the form /admin-bin/*. Operating the Domino for IBM HTTP Server 77 78 Domino for S/390 and Web Server Integration Chapter 6. OS/390 authentication support for Domino The Domino for IBM HTTP Server brings together two products that by themselves have especially rich security features. The Domino server and the IBM HTTP Server are systems with tight authentication and sophisticated resource protection schemes. When both are joined by the Domino for IBM HTTP Server, and the IBM HTTP Server becomes the HTTP gateway for Domino, it is obvious that there are new possibilities for the handling of security, in particular for authentication purposes. It may not make much sense to re-map the database protection characteristic of Domino into RACF profile protections, but the use of RACF for authentication appears as an immediate option. The design of the Domino for IBM HTTP Server makes an effort to retain both authentication systems, RACF and Domino, as options to choose from, depending on specific application requirements. As a result, the Domino for IBM HTTP Server connector fully supports the same authentication process as the Domino built-in HTTP task when authenticating Web user access to protected databases. In addition, the connector provides optional OS/390 authentication support, extending the authentication process to allow OS/390 user ID and passwords, or electronic certificates managed by RACF, to be used to verify a Web user’s identity. 6.1 Web access authentication overview When a client issues a Web access request to a server, the server may need to determine the identity of the Web user making the request. The process of determining and verifying a user’s identity is called authentication. There are two authentication methods commonly used by today’s web to convey the Web users identity: HTTP Basic authentication and SSL client certificate authentication. We discuss these methods in detail in the following sections. 6.1.1 HTTP basic authentication HTTP basic authentication is sometimes referred to as username and password authentication. In this method, when a Web user attempts access to a protected resource, the Web server challenges the user’s browser to supply a username and password with the request in order to authenticate the user. If this is the first such request for this Web server (and © Copyright IBM Corp. 2000 79 authentication “realm”), the browser will prompt the user to enter a username and password, and then it will re-issue the request including this information as the user authentication credentials. The username is used to identify the user and the password to verify that identity. HTTP basic authentication can be used on normal (http:) and secure/SSL (https:) connections. 6.1.2 SSL client certificate authentication SSL client certificate authentication uses X.509 certificates in conjunction with secure/SSL (https:) connections. X.509 certificates are also sometimes referred to as electronic certificates. In this method, the browser is configured to hold an electronic certificate (and corresponding private key) that uniquely identifies the Web user. When the user establishes an SSL connection with a Web server, the Web server asks the user’s browser to supply the user’s electronic certificate. Using public-key cryptographic techniques, the Web server verifies that the certificate belongs to the user that supplied it, and verifies that the certificate is trustworthy by checking that it has been issued by a trusted issuer or certificate authority. The certificate is used to identify the user. 6.1.3 Domino session authentication option In addition, outside of the authentication mechanisms defined by the protocols, there can be an application layer authentication where the challenge and clearance is handled by the application, possibly using cookies to perpetuate session term user identification. The built-in Domino HTTP task provides the application developer with a Domino Session Authentication option based on this type of application layer process. 6.1.4 Authentication summary At this point it should be clear that HTTP basic authentication can be used both on normal and secure (SSL) connections and that secure (SSL) connections allow the use of both basic and certificate authentication. Obviously, both types of connections, secure (SSL, https:) or not (http:), can be used in an unauthenticated mode. It is no secret that today, most Web traffic is unauthenticated over non-secure channel (http:). Only a small fraction of the traffic runs in secure mode (SSL, https:) and in turn, most of it is unauthenticated (for example a merchant only cares about your credit card number). The rest, a very tiny fraction of all traffic, is SSL with X.509 certificates. 80 Domino for S/390 and Web Server Integration 6.2 Overview of authentication with the Domino for IBM HTTP Server When a Web user accesses a database through the IBM HTTP Server running the Domino for IBM HTTP connector (or through Domino’s built-in HTTP task), Domino performs access control list checking to verify that the user is authorized to access the database and perform the action being requested. As part of this access control list checking, Domino may need to determine the identity of the Web user making the request, that is, to authenticate the user. Domino supports Basic Authentication and SSL client certificate authentication. In addition, Domino also provides a third authentication method, specific to Domino, called session authentication. Session authentication is a username and password authentication method like HTTP basic authentication. However, unlike HTTP basic authentication, the username and password challenge and response is accomplished through Domino-generated HTML forms and session cookies rather than through mechanisms defined by the HTTP protocol. The Domino for IBM HTTP Server connector supports all three methods of Web user authentication, but as explained before, the connector adds the choice of selecting the Domino or OS/390 authentication process. The HTTP basic authentication and SSL client certificate authentication methods can be used in conjunction with the two authentication processes and associated repositories: the standard Domino Web authentication process, and the optional OS/390 authentication process (RACF). Domino for IBM HTTP Server supports Domino Session Authentication only in conjunction with the standard Domino Web authentication process and not with OS/390 authentication. 6.2.1 Using Domino authentication The standard Domino Web authentication process involves verifying user identities using user information in the Domino directory. By default, the Web connector employs the standard Domino authentication model only. In this configuration, the connector treats all authentication credentials received from Web users (that is, usernames and passwords or electronic certificates) as being Domino usernames and passwords or Domino-managed certificates. The Web connector passes all requests to Domino as not-yet-verified requests, passing along the original username and password and/or electronic certificate received with the request. These credentials are used by OS/390 authentication support for Domino 81 Domino in performing its standard Web authentication process using user information (names, passwords, certificates) stored in the Domino directory. • In the case of username and password authentication, Domino uses the username to locate a Person document in the Domino directory, and then verifies that the password supplied by the Web user matches the Internet password in that Person document; see Figure 26. • In the case of certificate authentication, Domino uses information in the certificate to locate the user Person document. This Domino Web authentication processing is the same as that done for Web requests made through Domino’s built-in HTTP task. Figure 26. Person document 6.2.2 Using OS/390 authentication The Web connector’s OS/390 authentication support extends the Web authentication process to allow Web users to authenticate for Domino 82 Domino for S/390 and Web Server Integration requests using either OS/390 authentication credentials managed by RACF, or Domino authentication credentials managed by Domino. When this support is enabled and set up for a Web user, the user can supply either their OS/390 user ID and its password, or their Domino username and its Internet password when challenged to provide a username and password as part of HTTP basic authentication. Similarly, when authenticating by certificates, the user can provide an SSL electronic certificate that has been registered in RACF or in the Domino directory. The connector’s OS/390 authentication support works in conjunction with the application identity mapping support provided by RACF. This RACF support allows a Domino identity, in the form of a Domino shortname, to be associated with a user’s profile in RACF. The Web connector’s authentication process occurs in two steps. First, the Web connector treats the authentication credentials provided by the Web user as being OS/390 credentials, and uses them to authenticate the Web user as an OS/390 user ID using RACF. If the first step is successful, the connector then uses the RACF application identity mapping service to map the OS/390 user ID to its corresponding Domino identity (shortname). If successful, the Web connector passes the request to Domino as a pre-authenticated request, specifying the Domino shortname as the user’s Domino identity. If the connector is unable to authenticate the Web user as an OS/390 user ID (for example, if the first step fails), the Web connector passes the request to Domino as not-yet-verified, supplying the original username and password and/or the electronic certificate received with the request. This allows Domino to perform its standard authentication processing for the request. If the Web connector is able to authenticate the Web user as an OS/390 user ID (for example, if the first step succeeds), but there is no Domino shortname associated with the user’s RACF profile, the Web connector passes the request to Domino as an anonymous request, that is, without any username and password or electronic certificate. OS/390 authentication support for Domino 83 6.3 Authentication processing details This section provides a detailed description of the authentication processing done by Domino for IBM HTTP Server in both supported flavors, using Standard Domino authentication and using OS/390 authentication. It is important to note that the result of either authentication system is to assign the Notes user ID under which the Web browser request is being made. This ID will correspond to a Person entry in the Domino directory or to the generic Anonymous if the authentication process is unsuccessful. This Notes ID will then be used in the Access Control List (ACL) process associated with all database operations performed during the term of the HTTP transaction. Since unauthenticated Web users are mapped to Anonymous, it is important to add in database ACLs an entry for Anonymous with the desired access level. Otherwise, anonymous users will be given -Default- access. 6.3.1 Standard Domino authentication In its default configuration, the Web connector treats all security credentials it receives from Web users as being Domino (rather than OS/390) credentials. In this default setup, the OS/390 authentication is disabled. The connector passes all requests to Domino as not-yet-verified requests, passing along the original username and password and/or electronic certificate received with the request. These credentials are used by Domino in performing its standard certificate or basic authentication processing as required by the ACLs on the databases being accessed. 84 Domino for S/390 and Web Server Integration 6.3.1.1 Anonymous requests with Domino authentication If the Web user makes a request anonymously, that is without supplying either a username and password or electronic certificate, Domino processes the request as the Anonymous user. The actual access level to a given database will depend on the database security setup (such as ACL and Internet access). Figure 27. Anonymous request with Domino standard authentication If a Web user’s request is for a database or action that is protected and the credentials (or lack of them) do not grant access and the Domino server has been configured to allow name and password authentication, Domino will generate a basic-authentication challenge back to the Web user to supply a username and password for the request. OS/390 authentication support for Domino 85 6.3.1.2 Basic authentication requests with Domino authentication Web clients usually send a Basic authentication request in one of two situations; see Figure 28: • As a result of a challenge from Domino to a previous anonymous request. The Web client, upon receiving the rejection and challenge from the server, prompts the user for user ID and password and reissues the request with the credentials attached. • In subsequent requests to the server after an authenticated transaction. In general, due to built-in logic, once the Web client has gone through a challenge and authentication cycle, it will include the credentials on all requests to the same server. Without this logic, most likely every request would be challenged and would have to be re-issued. Figure 28. Basic authentication request with Domino standard authentication 86 Domino for S/390 and Web Server Integration 6.3.1.3 X.509 authentication requests with Domino authentication In the case of SSL requests that include electronic certificates, the IBM HTTP Server plays a role in the authentication process, assuming the proper setup is in place. When the user connects to the IBM HTTP Server using an SSL (https:) connection, and if the URL request is for a Domino database and is thus handled by the Domino for IBM HTTP Server connector (and the OS/390 authentication option is not enabled), the process is illustrated in Figure 29: Figure 29. Client certificates with Domino standard authentication The IBM HTTP Server will request a client certificate from the browser and verify that the certificate provided by the browser is signed by a certificate authority that is marked as trusted in the IBM HTTP Server’s key database. • If the certificate is not signed by a trusted signer, the IBM HTTP Server does not accept the certificate from the browser, and the request processing continues as if no certificate were supplied. • If it is trusted, the connector will obtain the certificate from the IBM HTTP Server and pass it to Domino as part of the request. OS/390 authentication support for Domino 87 Domino will use the certificate in a similar way as it would for client certificates arriving with requests through the built-in HTTP task. The certificate will be used in a Domino directory lookup to find the Person document corresponding to the user. The resulting Domino user name will be used to perform ACL checking for protected databases. 6.3.2 OS/390 authentication This section describes the authentication process outside Domino. 6.3.2.1 Anonymous requests with OS/390 authentication If a Web user makes a request anonymously, that is without supplying any username and password nor an electronic certificate, the Web connector passes the request to Domino without any security credentials. Domino processes the request as the Anonymous user. Figure 30. Basic authentication request with OS/390-based authentication If the Web users request is for a database or action that is protected and the Domino server has been configured to allow name and password authentication for Web users, Domino will generate a challenge back to the Web user to supply a username and password for the request. 88 Domino for S/390 and Web Server Integration 6.3.2.2 Basic authentication requests with OS/390 authentication If a Web user makes a request including a basic authentication username and password, the connector first uses the username and password to attempt to authenticate the user as a OS/390 user ID using RACF. If successful, it then maps that OS/390 user ID to a Domino identity (shortname) using the RACF application identity mapping service. If this process is successful, the Web connector passes the request to Domino as a pre-authenticated request, specifying the mapped-to Domino shortname as the user’s security credentials. If this process is not successful, the connector either passes the original username and password to Domino (used by the Domino standard basic authentication process), or passes the request to Domino as an anonymous request. The complete process is illustrated in Figure 31: Figure 31. Basic OS/390 authentication request using RACF • First, the connector considers the username and password supplied with the request as being an OS/390 user ID and password and attempts to verify the user ID and password using RACF. OS/390 authentication support for Domino 89 - If RACF verification fails, the OS/390 authentication process ends and the connector passes the request to Domino as a not-yet-authenticated request, passing the username and password as the user’s security credentials along with the request. The username and password are used by Domino as part of its normal basic authentication process as described in previous sections of this chapter. • If the credentials identify a valid OS/390 user, the Web connector uses the RACF application identity mapping service to determine the Lotus Notes/Domino shortname associated with the user’s RACF USER profile. This shortname is recorded in the LNOTES segment of the RACF USER profile. - If there is no value in the LNOTES segment, the process ends and the connector passes the request to Domino without any security credentials, that is, as an anonymous request. • If the USER profile has a Lotus Notes/Domino shortname associated with it, the connector turns to the Domino side to verify this as a shortname against the Domino Directory: - If it cannot relate the shortname value to a Domino directory person entry, the connector passes the request to Domino without any security credentials, that is, as an anonymous request. The original username and password provided with the request are not passed to Domino. • If the connector can successfully identify a Notes user by the shortname value, it passes the request to Domino as a pre-authenticated request, giving the Domino shortname as the user’s security credentials. 90 Domino for S/390 and Web Server Integration 6.3.2.3 X.509 authentication requests with OS/390 authentication If a Web user makes a request using an SSL connection and provides an electronic certificate signed by a trusted signer, the Web connector first uses that certificate to attempt to authenticate the user as OS/390 user ID using RACF digital certificate support and, if successful, then maps that OS/390 user ID to a Domino identity (shortname) using the RACF application identity mapping service. If this process is successful, the connector passes the request to Domino as a pre-authenticated request, specifying the mapped-to Domino shortname as the user’s security credentials. If this process is not successful, the connector either passes the original certificate to Domino (used by the Domino standard certificate authentication process), or passes the request to Domino as an anonymous request. The complete process is illustrated in Figure 32: Figure 32. Client certificates with OS/390-based authentication OS/390 authentication support for Domino 91 • As part of establishing the SSL connection with the Web browser, the IBM HTTP Server obtains the electronic certificate from the browser and verifies if the certificate is signed by the certificate authority (CA) that is marked as trusted in the IBM HTTP Server’s key database. - If the certificate is not signed by a trusted signer, it is not accepted by the IBM HTTP Server and never reaches the connector. The resulting effect is the request is processed as if it arrived without any security credentials, that is, as an anonymous request. • If the certificate can be trusted, it is given to the Web connector that will attempt to map the certificate to an OS/390 user ID using RACF digital certificate support. - If the check against the RACF database fails, the authentication on the OS/390 side ends and the connector passes the request to Domino as a not-yet-authenticated request. The certificate reaches Domino as the user’s security credentials along with the request and is used by Domino as part of its normal certificate authentication process. • If the certificate is successfully mapped to an OS/390 user ID, the Web connector uses the RACF application identity mapping service to determine the Lotus Notes/Domino shortname associated with the user’s RACF USER profile. This shortname is recorded in the LNOTES segment of the USER profile. - If there is no value in the segment, the OS/390 authentication process ends and the connector passes the request to Domino without any security credentials, that is, as an anonymous request. • If the USER profile has a Lotus Notes/Domino shortname associated with it, the Web connector turns to the Domino side to verify this as a valid shortname against the Domino directory: - If this verification fails, the connector passes the request to Domino without any security credentials, that is, as an anonymous request. The original certificate provided with the request is not passed to Domino. • If this verification succeeds, the connector passes the request to Domino as a pre-authenticated request, specifying the Domino shortname as the user’s security credentials. 92 Domino for S/390 and Web Server Integration 6.3.2.4 X.509 and basic authentication with OS/390 authentication It is possible for an SSL request to carry both an electronic certificate and basic authentication username and password credentials. If such a request with a trusted certificate reaches the Web connector, it first uses the certificate to attempt to authenticate the user as OS/390 user ID using RACF. If that fails, the Web connector then tries to use the basic authentication username and password as an OS/390 user ID and password and verify them using RACF. If either of these authentication methods succeeds, the connector maps that OS/390 user ID to a Domino identity (shortname) using the RACF application identity mapping service. If this process is successful, the connector passes the request to Domino as a pre-authenticated request, specifying the mapped-to Domino shortname as the user’s identification. If this process is not successful, the Web connector either passes the original username and password and certificate to Domino (used by the Domino standard certificate and basic authentication processes) or passes the request to Domino as an Anonymous request. The complete process is illustrated in Figure 33: Figure 33. X.509 and basic authentication with OS/390 authentication OS/390 authentication support for Domino 93 • As part of establishing the SSL connection with the Web browser, the IBM HTTP Server obtains the electronic certificate from the browser and verifies that the certificate is signed by a certificate authority that is marked as trusted in the IBM HTTP Server’s key database. - If the certificate is not signed by a trusted signer, it is not accepted by the IBM HTTP Server. Processing continues as if only username and password were provided, as described before for requests with basic authentication credentials. The Web connector will either identify a valid OS/390 user or give a chance to Domino authentication. • If trusted, the certificate is given to the Web connector to attempt to map the certificate into an OS/390 user ID by using RACF digital certificate support. - If mapping fails, the Web connector attempts to authenticate username and password as an OS/390 user ID and password against RACF. • If both the certificate and the username/password authentication fail to validate an OS/390 user, the OS/390 authentication ends and the connector passes the request to Domino as a not-yet-authenticated request. Both the certificate and the username/password are given to Domino as the user’s security credentials along with the request. The certificate and username/password are used by Domino as part of its normal certificate and basic authentication process. • If either the certificate or username/password successfully authenticate the user as an OS/390 user ID, the Web connector uses the RACF application identity mapping service to determine the Lotus Notes/Domino shortname associated with the user’s RACF USER profile. This shortname is recorded in an LNOTES segment of the USER profile. - If there is no value in the segment, the OS/390 authentication process ends and the connector passes the request to Domino without any security credentials, that is, as an anonymous request. • If the USER profile has a Lotus Notes/Domino shortname associated with it, the connector verifies this shortname with Domino to ensure that it is a valid shortname registered in the Domino directory. - If this verification fails, the connector passes the request to Domino without any security credentials (that is, as an anonymous request). Neither the original certificate nor the username/password provided with the request are passed to Domino. • If this verification succeeds, the connector passes the request to Domino as a pre-authenticated request, specifying the Domino shortname as the user’s identification. 94 Domino for S/390 and Web Server Integration 6.4 Enabling OS/390 RACF-based authentication The standard setup procedure configures the Domino for IBM HTTP Server so that the authentications are performed by Domino. If the decision is made to enable OS/390 authentication, this can be achieved by the following steps: 1. Update the IBM HTTP Server’s permissions. Update the RACF permissions for the IBM HTTP Server user ID (WEBSRV by default) so that it has the authority to invoke the RACF application mapping service to retrieve the LNOTES segment for later matchup with the shortname in Person documents. From a user ID with RACF SPECIAL authority, issue the following commands: rdefine facility irr.rusermap uacc(none) permit irr.rusermap class(facility) id(WEBSRV) acc(read) setropts raclist(facility) refresh 2. Activate the connector’s OS/390 authentication processing. The connector can be instructed to use OS/390 authentication by altering the ServerInit statement in the server’s httpd.conf file by appending the terms -platcreds allow. This will enable the use of OS/390 platform credentials. ServerInit PATHNAME/domihttp:ServerInit "sslport SSL_PORT -platcreds allow" For this change to take effect, the server will have to be restarted. Obviously, for it to make a difference, users have to be properly defined in RACF. 6.5 Practical considerations As explained in previous sections, Domino for IBM HTTP Server (the Web connector) brings OS/390 authentication into the picture, but the Domino database access control scheme remains in place. Once a Web user is authenticated, his ability to deal with a database is set in the database’s ACL. On the other hand, the combined authentication process causes either selection to be not as absolute as one might think. Here are points worth considering: • OS/390 authentication is just an option, and it is disabled in the default configuration, leaving the authentication in the hands of Domino. • Enabling OS/390 authentication is easy as described in 6.4, “Enabling OS/390 RACF-based authentication” on page 95. But doing so without loading user definitions in the RACF database makes little sense. On the other hand, existing RACF user definitions are of no value without corresponding entries in the Domino directory. This is because after the OS/390 authentication support for Domino 95 user ID is RACF authenticated, it must be mapped to a Notes user by an LNOTES match to shortname. User RACF profiles with invalid LNOTES segments will result in anonymous requests. • Enabling OS/390 does not disable Domino/390 authentication. If the user ID password fails the RACF check, it is percolated to the standard Domino authentication where it will have a second chance. This has some implications: - It is feasible to have a hybrid setup where only a fraction of the users access the server using RACF credentials, while the rest use the Domino user and Internet password. - All non-RACF users will incur an OS/390 authentication failure before reaching the Domino process. However small, the resources involved in the failed check could be considered a waste. If this became an issue, users could be placed in different servers. • Use of standard Domino authentication in a Domino for IBM HTTP Server environment applies only to database objects, because only nsf-type URLs are passed to the connector. Requests for other objects like HTML pages and Java servlets are served by the HTTP side without the knowledge of Domino. In this sense, the use of RACF authentication can help to extend the scope of protection. 96 Domino for S/390 and Web Server Integration Chapter 7. Setting up a secure Web server This chapter helps you to set up the IBM HTTP Server in a way so that it can be used as a secure server in conjunction with the Domino for IBM HTTP Server. Since the server will be part of a Domino environment and may be pre-existent, the chapter covers some alternative options, in particular in the choice of an internal certificate authority. As described in Chapter 4, “Basic IBM HTTP Server installation” on page 35, we intend to provide you with a “quick and proper” customization which enables you to get a fast start. Security in the Web server is an extensive topic and is described in detail in OS/390 e-business Infrastructure: IBM HTTP Server 5.1 for OS/390 - Customization and Usage, SG24-5603. The steps for setting up a secure Web server are: 1. Decide on the source of the server certificate you will use. 2. Set the key ring with the server certificate. 3. Make configuration changes to establish SSL. In addition, if you are interested in setting the server to accept electronic certificates, refer to Chapter 8, “Setting up client certificates” on page 111 where the topic is covered with enough detail to get you started in that area. 7.1 Decision on server certificates You must decide what source of certificates will be used to authenticate your server. A certificate must be created by a certification authority (CA), and you can choose to use one of following authorities. • External (commercial) CA organizations • Self-certified CA To get started with SSL, you will probably want to do some testing within your organization, and for this purpose self-certification will probably be sufficient. In a pure IBM HTTP environment the preferred way is to use IKEYMAN to create a self-signed certificate authority. However, since the server will be part of a Domino environment, it may be an advantage to use the internal Domino Certificate Authority to sign the server certificate. This CA is also a self-signed authority, but it may be a better option, especially if X.509 client certificates come into consideration, in which case it really simplifies the insertion of the certificate into the Domino directory. © Copyright IBM Corp. 2000 97 If you deploy applications on the Internet, you will need a certificate from a widely recognized CA in the geographic region you expect your clients to connect from. The wider the geographic area you expect to reach out to, the more careful you will have to be about selecting a widely recognized CA. For the purpose of this chapter we will provide basic guidance to get started with either of these options, IKEYMAN and the Domino Certificate Authority. 7.2 Creating a server certificate using IKEYMAN This section describes how to generate server certificates using the IBM HTTP Server’s IKEYMAN utility. 7.2.1 Accessing the IKEYMAN utility The following gives you access to the IKEYMAN utility: • It is located in /usr/lpp/internet/bin. • It has default permission bits 751; Owner WEBADM; Group IMWEB. • Prepare the environment by setting up PATH, LIBPATH and NLSPATH environment variables. If you plan to use IKEYMAN frequently, modify your user profile to enable it there. To do so add the following definitions to your .profile data set .profile: • export PATH=$PATH:/usr/lpp/internet/bin • export LIBPATH=$LIBPATH:/usr/lpp/internet/bin:.: • export NLSPATH=$NLSPATH:/usr/lpp/internet/%L/%N 7.2.2 Generating and installing a self-signed certificate IKEYMAN provides a simple way to create a self-signed certificate. This certificate, which is in fact a CA (or root) certificate, can be used as an operational server certificate. 1. In the USS shell, change to the destined directory and execute IKEYMAN: cd /web/candy/sec ikeyman (see our proposed directory structure) Note As you will see later, the key database and the stash file (a separate file containing the encrypted database password) need to be in the same directory. Therefore, make sure that you change to the directory where you want to store the key database before performing the next steps. 2. Use the IKEYMAN entry panel as shown in Figure 34: 98 Domino for S/390 and Web Server Integration Option 1 Create a new key database. Name Use a name to identify this file as the server key database. Password Select a password. Expire No. Next selection Select option 5 in the Key database menu as indicated in Figure 35 on page 100 to create a self-signed certificate. IBM Key Management Utility Choose one of the following options to proceed. 1 - Create new key database 2 - Open key database 3 - Change database password 0 - Exit program Enter your option number: 1 Enter key database name or press ENTER for "key.kdb": candy1.kdb Enter password for the key database.......> secret Enter password again for verification.....> secret Should the password expire? (1 = yes, 0 = no) [1]: 0 The database has been successfully created, do you want to continue to work with the database now? (1 = yes, 0 = no) [1]: ===> 1 Figure 34. IKEYMAN entry panel Setting up a secure Web server 99 Key database menu Current key database is /web/candy/sec/candy1.kdb 1 2 3 4 5 6 7 8 9 10 11 - List/Manage keys and certificates List/Manage request keys Create new key pair and certificate request Receive a certificate issued for your request Create a self-signed certificate Store a CA certificate Show the default key Import keys Export keys List all trusted CAs Store encrypted database password 0 - Exit program Enter option number (or press ENTER to return to the parent menu): ===> 5 Figure 35. IKEYMAN: Key database menu 3. Define certificate content: • Version number determines the level of the certificate. We suggest you use 3 (which is the newest and latest version). • Enter a label for the key. Select a name that will associate the certificate being created to being the server certificate. • Select the desired keysize. • 512 bit is less secure but faster than 1024 bit. • 1024 bit is more secure but requires more cryptographic resources. • Define the certificate fields to define the Distinguished Name (DN). • Common Name The Common Name usually is the server’s Domain Name. This field will be checked against the actual URL and a warning will be issued if they don't match. • • • • • Organization Organization Unit City/Locality State/Province Country • Define when the certificate will expire. • Select that this key will become the default key in your key database. 100 Domino for S/390 and Web Server Integration • Store the certificate in a file. • Choose a format. It does not matter which format you choose (we used ASCII). • Give the file used to store the certificate a name (cert.arm). • Select 0 to proceed. Enter version number of the certificate to be created (1, 2, or 3) [3]: 3 Enter a label for this key................> IBM ITSO POK The Candy Server 1 Select desired key size from the following options (512): 1: 512 2: 1024 Enter the number corresponding to the key size you want: 1 Enter certificate subject name fields in the following. Common Name (required)................> wtsc59oe.itso.ibm.com Organization (required)...............> IBM Organization Unit (optional)..........> ITSO Poughkeepsie City/Locality (optional)..............> Poughkeepsie State/Province (optional).............> New York Country Name (required 2 characters)..> US Enter number of valid days for the certificate [365]: 1500 Doyouwanttosetthekeyasthedefaultinyourkeydatabase?(1=yes,0=no)[1]:1 Do you want to save the certificate to a file? (1 = yes, 0 = no) [1]: 1 Should the certificate binary data or Base64 encoded ASCII data be saved? (1 = ASCII, 2 = binary) [1]: 1 Enter certificate file name or press ENTER for "cert.arm": candy1.arm Please wait while self-signed certificate is created... Your request has completed successfully, exit ikeyman? (1 = yes, 0 = no) [0]: ===> 0 Figure 36. IKEYMAN: Create a self-signed certificate 4. Store the encrypted database password as indicated in Figure 37 on page 102. For certain functions it is required to have the encrypted database password in a separate file, so create a so-called “stash file”. This file must be in the same directory as the key database itself. The name needs to be associated with the key database and is predefined by IKEYMAN based on the name of your key database. Setting up a secure Web server 101 Key database menu Current key database is /web/candy/sec/candy1.kdb 1 2 3 4 5 6 7 8 9 10 11 - List/Manage keys and certificates List/Manage request keys Create new key pair and certificate request Receive a certificate issued for your request Create a self-signed certificate Store a CA certificate Show the default key Import keys Export keys List all trusted CAs Store encrypted database password 0 - Exit program Enter option number (or press ENTER to return to the parent menu): 11 The encrypted password has been stored in file /web/candy/sec/candy1.sth Your request has completed successfully, exit ikeyman? (1 = yes, 0 = no) [0]: ===> 1 Figure 37. IKEYMAN: Key database menu - option 11 Having completed the preceding steps, the following files will have been created in your directory (/web/candy/sec in our case): • candy1.arm • candy1.kdb • candy1.sth Note Should an error occur during this IKEYMAN process, you can just delete all files starting with the name of your key database in your directory for the security setup (for example, /web/server1/sec, if you followed our proposed directory structure) and start again. 7.3 Creating the server certificate using the Domino CA If you have plans to use the internal Domino Certificate Authority to issue client certificates to work with the server, it makes sense to use the same CA to sign the server certificate. 8.1, “Setting up the Domino Certificate Authority” on page 111 describes how to set up the Domino Certificate Authority (CA). In this section we go through the steps of creating the IBM HTTP Server operational certificate. 102 Domino for S/390 and Web Server Integration 7.3.1 Creating and submitting the server certificate request Start by invoking IKEYMAN. For information on the use of this utility refer to 7.2.1, “Accessing the IKEYMAN utility” on page 98. • Select option 1 to create the Web server key database. • Choose appropriate values for database file name, password, and expiration period. IBM Key Management Utility Choose one of the following options to proceed. 1 - Create new key database 2 - Open key database 3 - Change database password 0 - Exit program Enter your option number: 1 Enter key database name or press ENTER for "key.kdb": candy1_key.kdb Enter password for the key database.......> secret Enter password again for verification.....> secret Should the password expire? (1 = yes, 0 = no) [1]: 0 The database has been successfully created, do you want to continue to work with the database now? (1 = yes, 0 = no) [1]: ===> 1 Next, still in IKEYMAN, select option 3 to create a new key pair and certificate request. • Keep the default for the request file and assign a descriptive label to identify the certificate. • Chose a key size according to your needs. • Fill in the distinguished name certificate information (Common name, organization, etc.). Be sure to provide the fully qualified server’s TCP/IP domain name (domweb1.itso.ibm.com, in our case). Setting up a secure Web server 103 . Enter option number (or press ENTER to return to the parent menu): 3 Enter certificate request file name or press ENTER for "certreq.arm": Enter a label for this key................> candy1 server key Select desired key size from the following options (512): 1: 512 2: 1024 Enter the number corresponding to the key size you want: 2 Enter certificate subject name fields in the following. Common Name (required)................> domweb1.itso.ibm.com Organization (required)...............> ITSO Domino for IBM HTTP Server Organization Unit (optional)..........> ITSO Red Books City/Locality (optional)..............> Poughkeepsie State/Province (optional).............> New York Country Name (required 2 characters)..> US Please wait while key pair is created... Your request has completed successfully, exit ikeyman? (1 = yes, 0 = no) [0]: • Return to the main menu. Select option 11 to create the stash file and save the password in encrypted mode. Then use option 0 to exit . Now that the certificate request has been created, you need to pass it to the Domino CA. Since this has to be done using copy and paste to put the request text in the CA Web page, you need to prepare for it by copying the request to the Windows clipboard. • Still in the USS shell, use OEDIT to open certreq.arm, the certificate request file. • Select the whole text of the certificate and copy it to the clipboard. The operation must include the Begin Certificate and End Certificate lines. At this point you are ready to start the browser to access the Domino Certificate Authority. • Point the browser to the URL for the server and database corresponding to the CA application. In our case we used: https://domweb1:8261/ca/itso_ca.nsf The SSL port in Domweb1/itsoweb is set to 8261. • On the left panel, select Request Server Certificate. See Figure 38 on page 105. 104 Domino for S/390 and Web Server Integration Figure 38. Requesting a server certificate • In the certificate input area, paste the certificate text previously saved in the clipboard. Do not be overly concerned with the contact information, since you will use Pickup ID to retrieve the signed certificate. • Click Submit. 7.3.2 Signing the certificate with the Domino CA At this point you turn to the Domino Certificate Authority to approve the certificate request. • Working from the Domino administrator, open the Domino Certificate Authority application database. • Click Server Certificate Requests in the left panel. • Open the desired request by double-clicking on it. Setting up a secure Web server 105 • Review the Server Certificate Request Approval form to be sure that the submitted information complies with the organization’s certification policy. See Figure 39. Figure 39. Domino certificate processing • Deselect the checkbox to send e-mail notification to the requestor. • Fill in the validity period. • Write down the Pickup ID for later use and then select Approve. 7.3.3 Retrieving and receiving the signed certificate To complete the process, we will have to use the browser to retrieve the signed certificate from the Domino CA and then process it with IKEYMAN to receive it into the Server key database. First assign the trusted root of the Domino CA; otherwise it will not trust the signer and will refuse to receive the 106 Domino for S/390 and Web Server Integration signed certificate. If you have not done so, proceed to 8.3, “Adding the Domino CA trusted root to the HTTP Server” on page 123. 1. Obtain the signed certificate and save it temporarily in the clipboard: • Point the browser to the proper URL to access the Domino CA. • On the left panel, click Pick Up Server Certificate. • Enter the Pickup ID from the previous section and click Pick Up Signed Certificate. • The browser will display the signed certificate information. Select the whole certificate text, including Begin Certificate and End Certificate. Copy it to the clipboard. 2. Create a text file in the OS/390 UNIX HFS and paste the certificate from the clipboard. • Switch to the OMVS shell terminal session and start OEDIT with a non-existent file. The file name is not significant. (From the command line, we issued oedit signed.cert.) • Paste the content of the clipboard into the OEDIT screen. Be sure that the whole certificate is pasted properly, including the delimiter lines. Save the signed.cert file and exit. 3. Receive the certificate in the Server key database (key ring). • Start IKEYMAN and select option 2 to open the server’s key database. Setting up a secure Web server 107 IBM Key Management Utility Current key database is /web/candy/sec/candy1_key.kdb 1 2 3 4 5 6 7 8 9 10 11 - List/Manage keys and certificates List/Manage request keys Create new key pair and certificate request Receive a certificate issued for your request Create a self-signed certificate Store a CA certificate Show the default key Import keys Export keys List all trusted CAs Store encrypted database password 0 - Exit program Enter option number (or press ENTER to return to the parent menu): 4 Enter certificate file name or press ENTER for "cert.arm": signed.cert Do you want to set the key as the default in your key database? (1 = yes, 0 = no ) [1]: Please wait while certificate is received...... Your request has completed successfully, exit ikeyman? (1 = yes, 0 = no) [0]: ===> • Select option 4, Receive a certificate issued for your request and when prompted enter the name of the signed certificate file created with OEDIT. • Accept the certificate as the default key. 7.4 Configuring the Web server for SSL To finalize your “quick and proper” setup of a secure Web server, some changes have to be made to the configuration file httpd.conf. These changes relate to the parameters: KeyFile SSLMode SSLPort Normalmode 108 Define name and place of the key database Turn SSL on or off [on] Define the SSL port number [443] Define if normal mode still allowed [on] Domino for S/390 and Web Server Integration See Figure 40 for the required settings. # keyfile key.kdb keyfile /web/candy/sec/candy1.kdb <-default <-changed <-default sslmode on 443 <-default normalmode on <-default sslport Figure 40. httpd.conf setting for SSL mode The Web server needs to be restarted in order to pick up the changes. Now you can test the secure Web sever from your browser: https://<your-server-name> if you used the default SSL port 443, or https://<your-server-name>:<SSL port number> if you are using a port number other than the default. 7.4.1 SSL troubleshooting If everything is OK, the vv trace log should display the messages shown in Figure 41 on page 109: Loaded security US SSL security is "on" sslport........ 8221 normalmode is "on" keyfile........ /web/candy/sec/candy1.kdb secinit.c: Setting up security, state=0 secinit.c: retcode from skit_initialize=0 secinit.c: calling webdb_recoverstash Daemon...... Parsed SSL as port 8121, inet 0.0.0.0 IP.......... Opened socket number 10 Daemon...... Master socket(), bind() and listen() all OK Daemon...... SSL socket(), bind() and listen() all OK Figure 41. VV trace for correct SSL setup Setting up a secure Web server 109 If something went wrong you will get messages in your vv trace log similar to the following: ErrorLog.... 09/Jun/1999:10:31:07 +5000 SSL support initialization failed, server will run only in non-secure mode without listening on ssl port IP.......... sslmode = off;SSL Port not opened Should this be the case, the following might give an indication of the error. • • • • 110 Key database not at expected place. Stash file not in the same directory as key database. Stash file not the same name as key database. Database password expired. Domino for S/390 and Web Server Integration Chapter 8. Setting up client certificates This chapter helps you to set up the IBM HTTP Server to support the use of X.509 electronic client certificates through SSL. It covers using the Domino Certificate Authority as a tool to create client as well as server certificates for your test environment. At some point, your organization will have to decide on (or has already decided) the source of certificates for production use, either internal or external. The certificates topic in Domino is relatively complex because of the variations introduced by the use of Notes and/or Internet clients, the use of certificates with protocols other than https, cross-certification issues, etc. The intent of this chapter is to provide the minimum level of security needed to set up electronic client certificates to be used for test with the connector. For a more in-depth perspective of the topic, refer to the following publications: • • • • Administering the Domino System R5 Volume 1, CT6T7NA Administering the Domino System R5 Volume 2, CT6T8NA Lotus Notes and Domino R5 Security Infrastructure Revealed, SG24-5341 OS/390 e-business Infrastructure: IBM HTTP Server 5.1 for OS/390 Customization and Usage, SG24-5603 8.1 Setting up the Domino Certificate Authority The process of creating a Domino Certificate Authority in the Domino/390 environment is very similar to that used on other Domino platforms, with just some small differences caused by fact that the Notes client is running somewhere else and not within the OS/390 system. In this section we describe how to set up the Domino Certificate Authority application in the Domino/390 Server Domweb1/itsoweb. Since the CA application is a Web application, we have two choices for the access path: the Domino built-in http task, or using the IBM HTTP Server when in a Domino for IBM HTTP Server configuration. In either case, access will normally take place under SSL protection. The following process assumes that neither the IBM HTTP Server nor the Domino HTTP task are set up for SSL. © Copyright IBM Corp. 2000 111 8.1.1 Creating the Domino Certificate Authority application From the Domino Designer client, click File->Database->New to create the Domino Certificate Authority database. Be sure to select the server (in our case Domweb1/Itsoweb) and the Domino R5 Certificate Authority (CCA50.NTF) from the template list after setting the Show Advanced Templates checkbox as displayed in Figure 42. Figure 42. Create Domino database authority Exit the database immediately, once it opens, and proceed to edit the database Access Control List: • Include the names of the administrators who will be involved in the process of managing electronic certificates. Assign the Editor attribute to each of them and allow Delete access and the [CAPrivledge] role. • Set the -Default- to Author with Create access. 8.1.2 Creating the Certificate Authority key ring and certificate In this step we will actually create the self-signed certificate to be used as the internal Certificate Authority (CA). It will be stored in a password-protected binary format key ring. If the Domino Certificate Authority being created is to be used for other than test purposes, it is obvious that proper steps should be taken to provide physical security for the objects. The following steps will create the database (key ring): • Working from the Domino Administrator client, open the Domino Certificate Authority application database; see Figure 43 on page 113. 112 Domino for S/390 and Web Server Integration • Select Create Certificate Authority Key Ring & Certificate. Figure 43. Create Certificate Authority key ring • Fill in the values in the form as shown in Figure 43. There are three values that deserve some explanation here. • Key ring file name: This file will be created in the disk of the client machine where the Domino Administrator is running. You must specify the fully qualified path and file name; .kyr is the suggested extension. • Key size: This value defines the length of each of the keys in the key pair to be generated. • Common Name: This identifies, in a descriptive way, the CA entity. • Click Create Certificate Authority Key Ring. • Verify the information about the file and CA name and click OK. Setting up client certificates 113 If this was done for a production environment, this would be the point to make backups of the key ring file and store them in a secure location. 8.1.3 Configuring the Domino Certificate Authority profile Once the Certificate Authority key ring and certificate have been created, you can proceed to configure the Certificate Authority application by following these steps: • Working from the Domino Administrator, open the Domino Certificate Authority application (if not already open). • Select Configure Certificate Authority Profile. • Fill in the values in the form. Since you may not want to make use of Certificate Authority-generated e-mail notifications with embedded URL for the requestors to pick up the signed certificates, you may choose to leave blank most of the fields. • Click Save & Close. At this point, the Domino Certificate Authority is fully configured and ready to be used. 8.1.4 Setting up SSL on the Domino CA server Once the Domino CA is in operation, users will use a browser to access the CA to request or pick up certificates. Because of this, it is common practice to use SSL to protect the CA, although this is not mandatory in a test environment. In theory, if the intent is to set up the Domino for IBM HTTP Server, you would not need to set up the http task of the Domino server where the Certificate Authority resides, much less to secure it with SSL. You could access the CA through the Web connector even if the IBM HTTP Server is not secure. In fact, you could access the CA, process a server certificate request for the IBM HTTP Server, and then re-start the IBM HTTP Server in secure mode with the newly signed certificate. In practice, however, you may want to set up the Domino HTTP task with SSL, because at times it may be of value to be able to compare Web pages served through both paths, the IBM HTTP Server and Domino built-in http task. You can set up SSL as follows: • Working from the Domino Administrator client, open the Domino Certificate Authority application (if not already open). • Select Create Server Key Ring & Certificate. 114 Domino for S/390 and Web Server Integration Figure 44. Creating CA server key ring Setting up client certificates 115 • As shown in Figure 44 on page 115 (where we have included the fully scroll panel by combining two picture), fill in the values in the form as appropriate. Select key size and assign a label for identification of the CA certificate in the key ring. For the Common Name, be sure to provide the fully qualified server’s TCP/IP domain name (domweb1.itso.ibm.com in our case). • Click Create Sever Key Ring. You will be prompted for the CA password. • Now that the key ring has been created in the disk drive of the workstation, you need to transfer it to the notesdata directory of the Domino/390 server. On a Command Prompt window, switch to the directory where the files were created and start an FTP session in binary mode. We used the server ID for this operation; see Figure 45. D:\Notes\Data\ca>ftp domweb1 Connected to domweb1. 220-FTPD1 IBM FTP CS V2R7 at wtsc59oe.itso.ibm.com, 16:00:40 on 1999-09220 Connection will close if idle for more than 30 minutes. User (domweb1:(none)): domino 331 Send password please. Password: 230 DOMINO is logged on. Working directory is "/u/domino". ftp> cd /notesdata1/sec 250 HFS directory /notesdata1/sec is the current working directory ftp> bin 200 Representation type is Image ftp> put domweb1_cakey.kyr 200 Port request OK. 125 Storing data set /notesdata1/sec/domweb1_keyfile.kyr 250 Transfer completed successfully. 8715 bytes sent in 3.25 seconds (2.69 Kbytes/sec) ftp> put domweb1_cakey.sth 200 Port request OK. 125 Storing data set /notesdata1/sec/domweb1_keyfile.sth 250 Transfer completed successfully. 129 bytes sent in 0.00 seconds (129000.00 Kbytes/sec) ftp> bye 221 Quit command received. Goodbye. Figure 45. Transferring the key ring using FTP You can now set up the CA server to allow SSL connections. Go to the server document Ports - Internet Ports - Web. Provide the SSL key file name and other pertinent options. For more information, consult Administering the Domino System R5. Once this is done, you can recycle the Domino server and load the HTTP task to make the certificate application available to browsers. 116 Domino for S/390 and Web Server Integration Note that with this setup, Domweb1/Itsoweb will be running SSL with the identity of the Domino Certificate Authority. If you want to hide that identity, you can create a new server key ring by using the Server Certification Administration application (CERTSRV.NSF) in a very similar way. If you need to do so, refer to Administering the Domino System R5. 8.2 Creating client certificates In this section we cover how to issue X.509 client certificates to users in the Domino directory. For simplicity, these users will be defined in the directory as person entries, and not actual Notes registered users. 8.2.1 Creating a Person entry in Domino directory From the Domino Administrator, select File->Open Server and choose the proper server to administer the Domino Directory (in our case Domweb1/Itsoweb). Then to create a new Person entry, select People & Groups, People, Add Person and proceed to fill in the fields. Setting up client certificates 117 Figure 46. Creating a new Person entry If you intend to allow this person to use Internet mail, you will need to fill in the mail section and create the mail database with the proper template. Once you have provided all the information required, click Save & Close. This process can be repeated for as many test users as required. 8.2.2 Requesting the client certificate Now it is time to request a client certficate for the new person. We used Netscape Communicator. In general, this request should be run from the workstation where the user would be using it. In our case, because it was done for testing purposes, the request was made from the same workstation that we used for the entire project. 118 Domino for S/390 and Web Server Integration You might also find yourself having to make a certificate request from your own workstation, and you want to keep your personal Netscape environment separated from the test users you may be setting up. For this reason, we start with a tip on how to set up multiple Communicator profiles. 8.2.2.1 Setting up multiple Communcator profiles • From the bottom left corner of the Windows desktop, navigate through Start->Programs->Netscape Communicator->Utilities->User Profile Manager. • Then select New and fill in the user name and later on change the default profile name to the same user name (in our case we used Carl Jensen for both of them). Disregard any input fields you are not concerned with (mail, news...). This will set up a new user environment. Close the Navigator window, once complete. • In the Windows desktop, create an additional instance or copy of the Netscape shortcut. Right-click in this shortcut and open its properties window. You can customize the shortcut to evoke a specific profile by appending -P"profile name" (in our case -P"Carl Jensen") to the program target value. You can create as many profiles and shortcuts as needed to directly invoke a user’s browser session. Now, after starting the browser (for Carl Jensen, in our case) from the desktop shortcut , proceed to request the certificate: • Type the proper URL to access the Domino CA. In our case, this was: https://domweb1:8261/ca/itso_ca.nsf The SSL port in Domweb1/itsoweb is set to 8261. • Since the CA is not known to the browser, it is normal to receive the New Site Certificate warning. Follow the browser instruction to accept the certificate. • Once in the Domino Certificate Authority Web page, click Request Client Certificate in the left pane. • Type the user’s information, as appropriate. Setting up client certificates 119 Figure 47. Request a client certificate • Click Submit Certificate Request to pass the request to the Domino CA. • Assign a password to protect the client certificate in the browser. Netscape will prompt the user for the password when needed. • A page will display the information submitted with the certificate request. At this point, the request has been submitted and is pending approval by the CA, which is the next piece of action that must take place. 8.2.3 Signing the certificate and adding it to the Domino directory Now it is time to process the client certificate request and either approve or reject it. At the same time that it is approved, the certificate can be added to the Domino directory. In this way, whenever the certificate is presented in a 120 Domino for S/390 and Web Server Integration Web client request to the Domino server, the user can be authenticated and mapped to a user in the Domino directory. • Working from the Domino Administrator client, open the Domino Certificate Authority application database. • Click Client Certificate Requests in the left panel. • Open the request to be handled by double-clicking it. • Once in the Client Certificate Request Approval form, review the submitted information to be sure that it complies with the organization’s certification policy. • Keep the checkbox selected to Register Certificate in the Public Address Book, and make sure that the selected address book entry is the proper one. • If the request is to be denied, click Deny after providing a reason in the comment field. • To approve the request, fill in the Validity Period and write down the Pickup ID before selecting Approve. 8.2.4 Merging the signed client certificate In other circumstances, the client would use the e-mail notification to retrieve the signed certificate; but in our case, we used the Pickup ID obtained in the previous section. • Once again, type the proper URL to access the Domino CA; we used: https://domweb1:8261/ca/itso_ca.nsf • Click Pick Up Client Certificate. • Enter the Pickup ID from the previous section and click Pick Up Signed Certificate. • The browser will display the signed certificate information. If appropriate, click Accept Certificate. You will have to provide the certificate password that was assigned in an earlier section. Setting up client certificates 121 Figure 48. Pick up signed client certificate At this point the certificate request process for the Internet client is complete. Using Communicator, you can view it by selecting Communicator->Tools->Security Info, and then Yours, View. 8.2.5 Accepting the Domino CA in the client’s browser While you are accessing the Domino Certificate Authority from the browser, as in 8.2.2, “Requesting the client certificate” on page 118, you may want to accept the the Domino CA as a trusted root. Earlier on, when you accessed the Domino CA for the first time, you were presented with a new site warning and given the option to accept it. Accepting it, however, even forever, does not set that site as trusted root CA; it just sets it as a trusted site. Here we can accept the trusted root certificate of the Domino CA by clicking Accept This Authority In Your browser on the left panel of the Domino 122 Domino for S/390 and Web Server Integration Certificate Authority Web page. This presents a new page with information about the authority and the option to accept it. Once this is done, the certificate entry will appear in the list of certificate signers of the Communicator Security Info. 8.3 Adding the Domino CA trusted root to the HTTP Server If you are using the Domino Certificate Authority to issue certificates to Internet clients and you are going to accept these certificates through the IBM HTTP Server, you need to add the Domino CA certificate as trusted root to this server’s key ring. 1. First you need to obtain the Domino CA certificate, saving it in the windows clipboard: • Using the browser, type the proper URL to access the Domino CA; we used: https://domweb1:8261/ca/itso_ca.nsf • On the left panel, click Accept This Authority In Your Server. This will display a page with the trusted root certificate. • Select the certificate text by sweeping it with the mouse, and copy it to the clipboard. This operation must include both the Begin Certificate and End Certificate lines. Setting up client certificates 123 Figure 49. Certificate pickup 2. Create a OS/390 UNIX System Services HFS file and paste the certificate from the clipboard. • Switch to the USS shell terminal session and start OEDIT with a non-existent file. The file name is not significant. (From the command line, we issued oedit trusted.root). • Paste the content of the clipboard into the OEDIT screen. Be sure that the whole certificate is pasted properly, including the delimiter lines. Save the trusted.root file and exit. 3. Store the CA trusted certificate in the HTTP Server ring. • Start IKEYMAN and select option 2 to open the server’s key ring database. • Choose option 6 to store the CA certificate. 124 Domino for S/390 and Web Server Integration Current key database is /web/webdom1/sec/webdom1_httpkey.kdb 1 2 3 4 5 6 7 8 9 10 11 - List/Manage keys and certificates List/Manage request keys Create new key pair and certificate request Receive a certificate issued for your request Create a self-signed certificate Store a CA certificate Show the default key Import keys Export keys List all trusted CAs Store encrypted database password 0 - Exit program Enter option number (or press ENTER to return to the parent menu): 6 Enter certificate file name or press ENTER for "cert.arm": itso_domca_root.txt Enter a label for this key................> Domino CA Please wait while certificate is stored... Your request has completed successfully, exit ikeyman? (1 = yes, 0 = no) [0]: At this point the CA certificate has been stored. It can be verified by selecting option 10 to List all trusted CAs. 8.4 Setting up the Domino Server to accept electronic certificates By default, the Domino server setup of the built-in http task does not accept electronic certificates in the SSL port. To enable it to do so, do the following: • From the Domino Administrator, select the directory in the appropriate Domino server and click the Configuration tab. • In the All Servers Documents view, open for edit the appropriate server document. • Select Ports, Internet Ports, Web and scroll to the bottom, to the Web (HTTP/HTTPS) section. • Set Client Certificate to YES in the Authentication Options of SSL Port. • Save and close. When this is done, shut down and restart the Domino server to pick up the new setup. The next time a Web client presents a certificate, Domino will perform the standard client certificate processing. This processing involves Setting up client certificates 125 determining if the user is trusted and authenticating the user by mapping the certificate through the Domino directory. 8.5 Setting up the IBM HTTP Server to accept electronic certificates By default, the IBM HTTP Server is not enabled to accept client certificates through the secure SSL port. Assuming that the HTTP server has been properly set up for use of SSL as described in Chapter 7, “Setting up a secure Web server” on page 97, the use of client certificates can be enabled by editing the server’s configuration file, httpd.conf, and setting the SSLClientAuth directive local: SSLClientAuth local The default for this directive is off. Setting this value to local instructs the IBM HTTP Server to request client certificates from browsers when they establish an SSL connection with the server. With this setting, the IBM HTTP Server validates the certificates provided by the clients by checking that the certificates are signed by a trusted CA. Note Do not set the SSLClientAuth directive to passthru. This setting is intended for GWAPI or CGI applications that perform their own certificate processing. That is not the case for the Domino for IBM HTTP Server, which relies on the IBM HTTP Server to handle the trustworthiness of the certificate. 126 Domino for S/390 and Web Server Integration Chapter 9. Configuration scenarios As soon as we have the ability to run a Domino for IBM HTTP Server, we are confronted with a number of questions related to possible configurations. • Is it possible to run two or more of them in an OS/390 image? If so, what would be the reason for doing so? • Is it possible to connect more than one IBM HTTP Server to a Domino server? If so, would there be an advantage in doing it? Although the scope of the project did not allow for in-depth research to answer these questions, we were able to implement some basic configurations and explore some of the reasons why a specific configuration might be implemented. This chapter describes the scenarios that we implemented and their configuration information, along with considerations of why you could benefit from the scenario. Also included are sample configuration members. We tested the following configurations: 1. A minimum configuration where an IBM HTTP Server with the Web connector provides client connectivity to a Domino Server. It is discussed in 9.2, “Basic Domino for IBM HTTP Server configuration” on page 131. 2. Two or more separate sets of IBM HTTP and Domino servers with the corresponding connectors is described in 9.3, “Multiple instances of the Domino for IBM HTTP Server” on page 134. 3. Two or more IBM HTTP Servers to one Domino Server is discussed in 9.4, “Two or more IBM HTTP Servers connected to one Domino server” on page 139. 9.1 Configuration considerations Before getting into specific configurations, there are a number of considerations you should be aware of, as follows. 9.1.1 TCP/IP addresses/ports when running multiple servers In general, on a given TCP/IP stack, only one application can listen on a particular TCP/IP address and port combination. Attempts by other applications to listen on the same address/port combination will fail. The same applies to the OS/390 TCP/IP stack; although it is true that there is a © Copyright IBM Corp. 2000 127 Port Sharing configuration option, its use is limited to very specific circumstances and will not be considered here. On the other hand, there are a number of ways to configure the OS/390 TCP/IP stack in such a way that it supports two or more TCP/IP addresses, which is sometimes referred to as a multi-homed host. When a server, which is just a TCP/IP application, opens a socket to listen on a port, it can do so by using generic or specific bind. Using specific bind, the server identifies the address:port combination to be used, leaving the same port available on any additional stack addresses. Using generic bind, the server just identifies the port on which to listen but not the address, resulting in binding to that port on all available IP addresses in the stack, thus preventing other servers from using the same port on any of the addresses. Practically speaking, there are two common approaches to running multiple servers on the same stack: • Assign each server a different IP address. This allows all servers to listen on the standard port, like port 80 for HTTP protocol. • Share an IP address either with specific bind or not, but assign to each server a different port to listen on. This saves IP addresses but, other than for test purposes or very specific situations, it is not a workable production solution because application clients normally talk to servers using the protocol standard port, like port 80 for HTTP. In our residency, because we shared the environment with other on-going projects, we normally assigned a different port to each server with no specific bind. Specific bind with different IP addresses was only used when needed. 9.1.2 Same IP address on both servers It should be no problem to use the same IP address for both the IBM HTTP server and the Domino server, provided they do not use the same ports. Most commonly, this will be the case, with one listening on port 80 for HTTP and the other on port 1352 for NRPC protocol. 9.1.3 Supporting HTTP on both servers The Domino for IBM HTTP Server configuration provides an alternate HTTP path for Domino, but it does not prevent you from running the Domino built-in HTTP task. If you wish to run both applications simultaneously, you must configure them to use different IP address:port combinations since, as explained before, only one application can listen on a given combination at a time. 128 Domino for S/390 and Web Server Integration 9.1.4 Domain name server support Although it is possible to access the servers by using their numeric IP addresses, in practice each address should be mapped into a DNS entry. 9.1.5 Client authentication options The Domino for IBM HTTP Server connector fully supports the same Web user authentication process as does Domino’s built-in HTTP task for authenticating Web users access to protected databases. In addition, the Web connector provides optional OS/390 authentication support, extending the Web user authentication process to allow OS/390 user IDs and passwords, and/or electronic certificates managed by RACF, to be used to verify a user’s identity. For a detailed description of the authentication process refer to Chapter 6, “OS/390 authentication support for Domino” on page 79. 9.1.6 Server start/stop Due to the way that Domino and the Domino for IBM HTTP Server connector share data, it is necessary to stop (and then later restart) the IBM HTTP Server instance that is running the Web connector any time the Domino Server is being stopped, or terminates abnormally. This requirement may impact the availability of other applications being hosted by the same instance of the IBM HTTP Server as the one in which the connector is running. This must be taken into consideration to determine if it is operationally acceptable to host other than the Domino application(s) from the IBM HTTP configured with Domino. We recommend that you do not run the Web connector in the same IBM HTTP Server instance as other applications with critical availability requirements. Instead, you should set up a separate IBM HTTP Server instance for hosting Web access for Domino databases via the Web connector. 9.1.7 Scalable Web server considerations There are special considerations in the case of an IBM HTTP Server running as a scalable Web server. If the related Domino server is to be stopped, it is also necessary to stop the WLM Application Environments (APPLENVs) being used to process Web connector requests. Stopping the IBM HTTP Server instance is required in order to terminate the Web connector so that the IPC resources used to share data between the Domino server and the connector can be properly cleaned up. This IPC cleanup is required before Configuration scenarios 129 the Domino server and the Domino for IBM HTTP Server connector can be successfully restarted. This requirement may impact the availability of other applications being hosted by the same instance of the IBM HTTP Server as the one in which the connector is running. With the scalable configuration the scope of effect is expanded. As stated earlier, we recommend that you do not run the connector in the same IBM HTTP Server instance as other applications with critical availability requirements. In addition, if you are running the IBM HTTP Server as a scalable server, you should set up a separate WLM Application Environment (APPLENV) and corresponding IBM HTTP Server queue server processes for processing the Web connector workload. See IBM HTTP Server: Planning Installing and Using, SC31-8690 and OS/390 e-business Infrastructure: IBM HTTP Server 5.1 - Customization and Usage, SG24-5603 for information on setting IBM HTTP Server in scalable mode. 9.1.8 Internet cluster manager Since the Domino Internet cluster manager is implemented in the Domino built-in HTTP task, it is not available when this task is removed from the requests path in the Domino for IBM HTTP Server configuration. 9.1.9 One connector to one Domino server While it is possible to configure a Domino for IBM HTTP Server with two or more IBM HTTP Servers connected to the same Domino server, it is not possible to configure the Domino for IBM HTTP Server with one HTTP server connected to two or more Domino servers. From a given IBM HTTP Server, you can only connect to a Domino server. At first glance, it might seem that such a configuration would be desirable, for scalability purposes, in order to spread the workload. However, after looking into the design of the Web connector, it becomes obvious that this is not so. The connector moves the actual processing of client requests from the Domino HTTP task to the IBM HTTP Server address space. (Think of it as program calls to Domino code under the corresponding client thread.) All the work is done within the process. Connecting this process to another Domino server would add workload to the IBM HTTP Server, not spread it, and as such would provide no relief or scalability advantage. 130 Domino for S/390 and Web Server Integration 9.2 Basic Domino for IBM HTTP Server configuration This is the simplest configuration in which one IBM HTTP Server is connected to a Domino server. It is a fully functional solution which may be sufficient for the practical deployment of an application. It is also the starting point for installation, configuration, and test of larger configurations. A good practice when implementing this solution is to consider the installation of the IBM HTTP and Domino servers as separate entities. Test them as such and then implement the Web connector, making sure they are all working together. Figure 50. Basic Domino for IBM HTTP Server As depicted in Figure 50, which illustrates this basic configuration, we have chosen to use RACF authentication, but it could as well been left to Domino. In 9.3, “Multiple instances of the Domino for IBM HTTP Server” on page 134, we show how to configure the Web connector for basic Domino authentication. Configuration scenarios 131 9.2.1 Sample configuration: Basic Domino for IBM HTTP Server This section includes the highlights of the sample configuration. To better focus on the connector definition, we show only the sections of definitions that are relevant. Table 8 contains the most significant configuration parameters, like user IDs, server and host names and file directories used in the configuration. Although in our tests we used non-standard ports, here, to avoid any confusion, we decided to list in the table the standard port values. Table 8. Basic Domino for IBM HTTP Server sample configuration parameters Parameter Configuration Values Domino data directory /notesdata1 Domino product installation directory /usr/lpp/lotus Domino Server user ID (RACF) DOMINO1 Domino UNIX group NOTESGRP Domino Server name domweb1/ITSOweb Domino Server TCP host name domweb1.itso.ibm.com Domino Server port (http) 8080 (Debug only purposes) Domino Server SSL port (https) 8443 (Debug only purposes) IBM HTTP Server user ID WEBSRV IBM HTTP Server UNIX group IMWEB IBM HTTP TCP host name domweb1.itso.ibm.com IBM HTTP Server port (http) 80 IBM HTTP Server SSL port (https) 443 Connector authentication RACF You will notice that the list contains ports for the Domino built-in HTTP task. In our tests we found that, for debugging purposes, it was helpful to start the Domino internal HTTP task simultaneously with the IBM HTTP Server. To do so we assigned a pair of non-standard ports, which allowed us to point the browser to either HTTP server. The need for this should be obvious since only one server can listen on a particular address and port combination at any given time. As an alternative, we could have assigned different TCP/IP stack addresses and host domain names to each of the servers, setting the ports to the standard values. Chapter 10, “Migrating to the Domino for IBM HTTP Server” 132 Domino for S/390 and Web Server Integration on page 143 includes details about how to use both HTTP paths to migrate applications. The relevant segments of httpd.conf and httpd.envvars for the IBM HTTP Server 1 connector are documented in Figures 51 and 52. The parameter values from Table 8 on page 132 have been integrated into the segments of httpd.conf and httpd.envvars files, with some significant values shown in bold. PATH=/bin:.:/usr/sbin:/usr/lpp/internet/bin:/usr/lpp/internet/sbin:/usr/ lpp/ldap/bin:/usr/lpp/java/J1.1.6/J1.1/bin:/notesdata1: /usr/lpp/lotus/notes/latest/os390:/usr/lpp/lotus/notes/latest/os390/res/C: LIBPATH=/usr/lpp/internet/bin:/usr/lpp/internet/sbin:/usr/lpp/ldap/lib: /usr/lpp/java/J1.1.6/J1.1/lib/mvs/native_threads: /usr/lpp/lotus/notes/latest/os390 Figure 51. Section of httpd.envvars for IBM HTTP sample 1 To help understand the difference in implementing each type of authentication, note that only the ServerInit statement is affected, with the -platcreds allow keywords enabling the RACF option. For more details about the authentication options refer to Chapter 6, “OS/390 authentication support for Domino” on page 79. Port 8230 ServerInit /usr/lpp/lotus/notes/latest/os390/domihttp:ServerInit "-sslport 443 -platcreds allow" Protection DOMINO-CONNECTOR-SETUP { Mask Anybody UserID DOMINO1 } NameTrans /icons/* NameTrans / /usr/lpp/lotus/notes/latest/os390/domihttp:DomIcons /usr/lpp/lotus/notes/latest/os390/domihttp:DomRootCmds Protect Protect Protect Protect DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP *.nsf *.nsf/* /domicons/* /domjava/* Service *.nsf Service *.nsf/* ServerTerm /usr/lpp/lotus/notes/latest/os390/domihttp:Service /usr/lpp/lotus/notes/latest/os390/domihttp:Service /usr/lpp/lotus/notes/latest/os390/domihttp:ServerTerm Pass Pass /notesdata1/domino/icons/* /notesdata1/domino/java/* /domicons/* /domjava/* Figure 52. httpd.conf for IBM HTTP sample 1 with standard Domino authentication Configuration scenarios 133 9.3 Multiple instances of the Domino for IBM HTTP Server Multiple instances of the Domino for IBM HTTP Server can be installed in a given LPAR or in different LPARs, provided enough resources are available. As is illustrated in Figure 53, this entails isolated sets, each with an IBM HTTP Server connected to a Domino server in a Domino for IBM HTTP Server configuration. In such environment, the Domino servers may or may not be part of the same Notes domain. Figure 53. Two separate instances of the Domino for IBM HTTP Server During the residency we discussed why multiple instances would be of value. There are a number of arguments that can make a case for this scenario and whatever they are, they will make the assumption that the client requests can be routed to the proper target instance by whichever means, the simplest being the use of different URLs. Although we classified the reasons into three categories, normally, in a practical situation, a combination of them is what leads to two or more instances. 134 Domino for S/390 and Web Server Integration Some reasons for using multiple instances of the Domino for IBM HTTP Server are: 1. Application separation • It might simply be desirable to separate two applications (for example, the human resource applications from HTTP mail serving). • Intranet vs. internet: There is no need to host internal applications for Internet access. Why not place them in separate servers? • Easy of maintenance: Keeping applications in separate servers can simplify maintenance by allowing each organization to manage its own applications. Also, the effect of service outages, planned or not, can be isolated to specific application areas. • Critical applications vs. non-critical: Keeping critical applications in their own environments can lead to their stability. Scheduling of changes to less critical applications in other environments becomes less of an issue. 2. Security considerations • Intranet vs. internet: There is no need to expose internal applications to accessibility from the Internet. • Different authentication mechanisms: These may be desirable for different user populations, or the security clearance levels of two applications may simply require it. For example, one Domino for IBM HTTP Server could provide OS/390 authentication support, checking the Web user credentials against OS/390 user IDs and passwords, while the other Domino for IBM HTTP Server would check the credentials against the Domino directory. One server could use RACF for employees, the other server could use Domino authentication for customers. Or you could use RACF for intranet purposes and Domino-managed X.509 client certificates for Internet access. 3. Performance and tuning • Workload isolation: Separating different types of workloads makes the environment more manageable. By segregating light transactions from heavy long-running ones, tuning can be done and resources can be directed to provide adequate service levels. • Scalability: When design allows, an application workload can be spread across two or more instances. This is the only way to provide scalability where transaction volume and characteristics result in exhaustion of interprocess communication shared memory resources. Configuration scenarios 135 • Different authentication for different users: If two user populations with different authentication types (RACF and Domino) are supported under the same Domino for IBM HTTP Server, unnecessary cycles will be used in to the attempt to authenticate the non-RACF users against RACF before they are authenticated against the Domino directory. This overhead has not been quantified and is probably rather small, but nonetheless it could be avoided by separating the users into two different servers, each with the proper authentication type. As a final comment to the previous arguments, it is important to remember that if the same database application is hosted through two separate servers, care must be taken to ensure that the nature and dynamics of the data allow for this configuration. For example, an online customer registration application could be acceptable, but warehouse inventory would not be. 9.3.1 Sample configuration: Second Domino for IBM HTTP Server In our test environment we had two Domino for IBM HTTP Server instances as shown in Figure 53 on page 134, with the parameter values depicted in Table 9. We have already covered the configuration of Server #1 in 9.2.1, “Sample configuration: Basic Domino for IBM HTTP Server” on page 132. In this section, we cover the Domino for IBM HTTP Server #2, which will use basic Domino authentication. Table 9. Second Domino for IBM HTTP Server sample configuration parameters Parameter Server #1 Domino binaries directory /usr/lpp/lotus Domino data directory /notesdata1 /notesdata2 Domino Server user ID (RACF) DOMINO1 DOMINO2 Domino UNIX group NOTESGRP Domino Server name domweb1/ITSOweb domweb2/ITSOweb Domino Server TCP host name domweb1.itso.ibm.com domweb2.itso.ibm.com Domino Server port (http) 8080 (for debug only) not used Domino Server SSL port(https) 8443 (for debug only) not used IBM HTTP Server user ID (RACF) IBM HTTP Server UNIX group IBM HTTP TCP host name 136 Server #2 Domino for S/390 and Web Server Integration WEBSRV IMWEB domweb1.itso.ibm.com domweb2.itso.ibm.com Parameter Server #1 Server #2 IBM HTTP Server port (http) 80 80 IBM HTTP Server SSL port(https) 443 443 Connector authentication RACF Domino Note that, for clarity, Table 9 shows each of the Domino for IBM HTTP Servers with a different host name and implied address and making use of standard ports. In addition, each pair of servers, Domino and IBM HTTP, can use the same host name and implied IP address. This is not mandatory but is probably a good practice to follow whenever possible. The differences or changes to httpd.envvars and httpd.conf needed to customize the second server are minimal, affecting only the values of notesdata path, Domino user ID, and hostname. Figures 54 and 55 on page 138 present abstracts of these two files with /notesdata2, DOMINO2, and domweb2 properly substituted. PATH=/bin:.:/usr/sbin:/usr/lpp/internet/bin:/usr/lpp/internet/sbin:/usr/ lpp/ldap/bin:/usr/lpp/java/J1.1.6/J1.1/bin:/notesdata2: /usr/lpp/lotus/notes/latest/os390:/usr/lpp/lotus/notes/latest/os390/res/C: LIBPATH=/usr/lpp/internet/bin:/usr/lpp/internet/sbin:/usr/lpp/ldap/lib: /usr/lpp/java/J1.1.6/J1.1/lib/mvs/native_threads: /usr/lpp/lotus/notes/latest/os390 Figure 54. Section of httpd.envvars for IBM HTTP sample 2 Configuration scenarios 137 Hostname domweb2.itso.ibm.com BindSpecific on Port 80 ServerInit /usr/lpp/lotus/notes/latest/os390/domihttp:ServerInit "-sslport 443" Protection DOMINO-CONNECTOR-SETUP { Mask Anybody UserID DOMINO2 } NameTrans /icons/* NameTrans / /usr/lpp/lotus/notes/latest/os390/domihttp:DomIcons /usr/lpp/lotus/notes/latest/os390/domihttp:DomRootCmds Protect Protect Protect Protect DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP *.nsf *.nsf/* /domicons/* /domjava/* Service /*.nsf Service /*.nsf/* ServerTerm /usr/lpp/lotus/notes/latest/os390/domihttp:Service /usr/lpp/lotus/notes/latest/os390/domihttp:Service /usr/lpp/lotus/notes/latest/os390/domihttp:ServerTerm Pass Pass /notesdata2/domino/icons/* /notesdata2/domino/java/* /domicons/* /domjava/* Figure 55. Section of httpd.conf for IBM HTTP sample 2 The basic Domino authentication is set by default. Just omitting the words -platcreds allow from the tail end of the ServerInit statement disables RACF authentication, allowing it default to Domino. 138 Domino for S/390 and Web Server Integration 9.4 Two or more IBM HTTP Servers connected to one Domino server As shown in Figures 56 and Figure 57 on page 140, it is possible to configure more than one IBM HTTP Server connected to the same Domino server, creating what could appear to be a multi-headed Domino for IBM HTTP Server. But since the *.nsf HTTP client requests for a Domino for IBM HTTP Server are executed within the Web connector, in a IBM HTTP Server process it would be more appropriate to depict it as a number of Domino for IBM HTTP Servers which are standing on a common pair of feet, the Domino server. Figure 56. Two IBM HTTP Servers to one Domino server 9.4.1 Configuration Considerations Whichever way you choose to depict this complex installation, it is worth clarifying some details: • All “heads”, or IBM HTTP Servers, see the same set of data, as opposed to possible database replicas if full separate instances were implemented. Configuration scenarios 139 • Each IBM HTTP Server has the ability to fully execute the client requests because the client threads actually run in the IBM HTTP Server address space. However, it is not clear to us that this is a scalability advantage because the process by definition is multi-threaded. Another “head” would add more threads, but a similar effect could be attained by doubling the threads in the first head. In our opinion only the exhaustion of a resource within the first server would make spawning a new head advantageous. • The weak link is in the sharing of resources though the common Domino server, in particular, locks and shared memory. Using locks affects overall performance (CPU and response time), and using shared memory results in a possible saturation of shared storage used for session control blocks. • Each IBM HTTP Server can implement different security schemes: RACF or Domino authentication. • From an operational perspective, both server members, the IBM HTTP Server and Domino, must start and stop in a coordinated way. This can be a critical operational requirement. Figure 57. Multiple IBM HTTP Servers to one Domino server 140 Domino for S/390 and Web Server Integration Using these considerations as a filter, you can refer to 9.3, “Multiple instances of the Domino for IBM HTTP Server” on page 134 and revisit the different reasons that could be an incentive to implement the configuration considered here. In general, some of the reasons for application separation or security will stand, while scalability probably will not. 9.4.2 Sample configuration: Additional IBM HTTP Server During our tests we implemented this configuration, just to the point where we were able to determine that it was feasible without running into significant problems. Table 10 lists the values used. This was one of the very few instances where we really used specific bind, although on non-standard ports. Once again, for clarity, the list includes standard port values. Table 10. Additional IBM HTTP Server sample configuration parameters Parameter HTTP #1 HTTP #2 Domino Data directory /notesdata1 Domino binaries directory /usr/lpp/lotus Domino Server user ID (RACF) DOMINO1 Domino UNIX group NOTESGRP Domino Server name domweb1/ITSOweb Domino Server TCP host name domweb1.itso.ibm.com Domino Server port (http) 8080 (for debug only) Domino Server SSL port(https) 8443 (for debug only) IBM HTTP Server user ID (RACF) WEBSRV WEBSRV IBM HTTP Server UNIX group IMWEB IMWEB IBM HTTP TCP host name domweb1.itso.ibm.com domweb2.itso.ibm.com IBM HTTP Server port (http) 80 80 IBM HTTP Server SSL port(https) 443 443 Connector authentication RACF Domino In 9.2.1, “Sample configuration: Basic Domino for IBM HTTP Server” on page 132, we describe the configuration for server #1. We also looked at the IBM HTTP Server #2, but that was for a different scenario. Although the changes for this scenario are minimal, we have included, in Figures 58 and Figure 59 on page 142, sections of the configuration files for a second HTTP Server associated with the same Domino server. If additional servers were planned, Configuration scenarios 141 the only consideration would be the need for different host names corresponding to a different IP address, assuming standard ports are being used. Note that due to the limited scope of our project, we did not test with more than two servers. PATH=/bin:.:/usr/sbin:/usr/lpp/internet/bin:/usr/lpp/internet/sbin:/usr/ lpp/ldap/bin:/usr/lpp/java/J1.1.6/J1.1/bin:/notesdata1:/usr/lpp/lotus/notes/latest/ os390:/usr/lpp/lotus/notes/latest/os390/res/C: LIBPATH=/usr/lpp/internet/bin:/usr/lpp/internet/sbin:/usr/lpp/ldap/lib: /usr/lpp/java/J1.1.6/J1.1/lib/mvs/native_threads: /usr/lpp/lotus/notes/latest/os390 Figure 58. Section of httpd.envvars for second (additional) HTTP server Note that the user ID stays at Domino1 because both connectors are accessing the same Domino1 server. The same applies to /notesdata1, the notes data directory. Hostname domweb2.itso.ibm.com <= Different IP Address BindSpecific on <= For binding to the Hostname Port 80 <= Only the same as other web servers when you are using different IP address ServerInit /usr/lpp/lotus/notes/latest/os390/domihttp:ServerInit "-sslport 443" no ssl port Protection DOMINO-CONNECTOR-SETUP { Mask Anybody UserID DOMINO1 } NameTrans /icons/* NameTrans / /usr/lpp/lotus/notes/latest/os390/domihttp:DomIcons /usr/lpp/lotus/notes/latest/os390/domihttp:DomRootCmds Protect Protect Protect Protect DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP *.nsf *.nsf/* /domicons/* /domjava/* Service /*.nsf Service /*.nsf/* ServerTerm /usr/lpp/lotus/notes/latest/os390/domihttp:Service /usr/lpp/lotus/notes/latest/os390/domihttp:Service /usr/lpp/lotus/notes/latest/os390/domihttp:ServerTerm Pass Pass /notesdata1/domino/icons/* /notesdata1/domino/java/* /domicons/* /domjava/* Figure 59. Section of httpd.conf for second (additional) IBM HTTP Server 142 Domino for S/390 and Web Server Integration Chapter 10. Migrating to the Domino for IBM HTTP Server This chapter covers some considerations related to migrating from native Domino-based Web serving to using a Domino for IBM HTTP Server configuration. In real life such a migration could also involve a platform change, for example from NT to OS/390. However, the scope of the chapter will be limited to issues related to moving the support for HTTP serving from Domino to the IBM HTTP Server with the Web connector. When Domino for IBM HTTP Server comes into the picture, replacing an existing Domino Web server, there are changes such as these: • As some pieces of the action move from the Domino side to the IBM HTTP server side, the related definitions must move also. • As new functionality comes into perspective, new choices appear with their corresponding definition requirements. • With the move, some options may be left behind, or need some re-engineering to maintain equivalent results. The following sections will explore some of these areas. 10.1 Security considerations As explained in depth in Chapter 6, “OS/390 authentication support for Domino” on page 79, the Domino for IBM HTTP Server brings OS/390 authentication into the picture, but the Domino database access control scheme remains in place. If authentication is left to Standard Domino, meaning the OS/390 authentication is not enabled, the process should be very much the same for it with respect to database access. If the existing Domino server makes use of Web Configuration documents defined in the Domino Directory, the entities or functionality defined by them is not mapped over nor available when the connector is in place. This affects virtual servers, URL mappings and redirections, realms, and file protection. With the Web connector, you can protect system files using OS/390 UNIX file permissions. © Copyright IBM Corp. 2000 143 10.2 Migrating the configuration If you have set up Domino using its built-in HTTP server and customized its HTTP-related settings in the Domino directory, you could use the configuration merge utility provided with the Domino for IBM HTTP Server support as an aid in setting up the IBM HTTP Server instance that will run the Domino for IBM HTTP Server connector. This utility picks up selected HTTP-related fields from a specified server document in the Domino directory, and merges these settings into an IBM HTTP Server configuration file which you can then use as the basis for your continued setup work. This utility does not attempt a full-scale migration of a Domino Web environment, but may be useful as a first step in such a migration. On the other hand, with some experience in the IBM HTTP Server, it should not be an issue to map the existing Domino definitions into the httpd.conf file. In our project we performed all configuration by manual editing and did not use the configuration merge utility. When the configuration merge utility is used, it is started from a UNIX shell session and has access, either through defaults or explicit parms, to the Domino directory, Domino server name, existing HTTP server configuration file name, and output file name. A number of fields from the Domino server document will be migrated by the utility and merged with the provided configuration file. The fields migrated relate to the areas of TCP/IP ports, client authentication, host name and bind, active threads, log settings and time-outs. For detailed information on the use of the configuration merge utility, refer to the description included in the Domino IBM HTTP Server Guide. 10.3 Features not supported by the Web connector As described, the Domino for IBM HTTP Server design prevents the use of some features that would otherwise be available. This may result from technical incompatibility, or be caused by separation of the HTTP process out of Domino. Some of the features not available are: • Connection request logging on the Domino side. • Web server API filters. • Domino Web server API (DSAPI) filters are not supported. 144 Domino for S/390 and Web Server Integration • Domino Internet Cluster Manager (ICM) is not supported. • Web configuration documents defined in the Domino directory, that is, virtual servers, URL mappings and redirections, realms, and file protection, are not supported. You now can protect system files using OS/390 UNIX file permissions. • The Domino Servlet Manager is not supported. However, you can use the servlet manager provided with the IBM WebSphere Application Server. • Some options in the Domino server document lose their significance and setting makes no difference. Others are still used. We suggest that you check the Domino IBM HTTP Server Guide for a detailed list of supported features and the current status of the unsupported features. 10.4 Testing a migrated application Once the Domino for IBM HTTP Server has been set up and made operational by migrating a Domino server with an existing Web application, it is time to test the application and verify that all of its pieces work properly. Such a test normally involves browsing through the application and checking different aspects such as page rendering, link integrity, etc. During our project, we did not have the time to dissect the migration of an application, but to a point, we had a need to go through similar steps when testing the connector. Often, we found ourselves having a Domino server with both the built-in HTTP task and the Web connector started. With the browser, we would compare access to server databases through both HTTP paths. To help us with the process, we devised a simple pair of HTML pages that allowed us to choose the access path and even render both the same pages simultaneously in parallel frames of the navigator window. Figure 60, “Using both Domino for IBM HTTP connector & Domino HTTP task” on page 146 illustrates the environment. Migrating to the Domino for IBM HTTP Server 145 Figure 60. Using both Domino for IBM HTTP connector & Domino HTTP task A simple initial HTML page that included three links was first established. One link was used to put requests through the Domino HTTP task, another link was used to request the Domino for IBM HTTP Server connector, and the third was used to show two frames, so we could compare the rendering by the Domino HTTP task with the Domino for IBM HTTP Server connector. The HTML code is represented in Figure 61 on page 147 and the HTML page is represented in Figure 62 on page 147. 146 Domino for S/390 and Web Server Integration <title>Domino for IBM HTTP Server Connector</title> </head> <body> <center><b><u><font size=+3>Domino for IBM HTTP Server Connector</font></u></b> <hr WIDTH="100%"></center> <ul><li> <font size=+2><a href="http://domweb1:8260/?openserver">Access through the Domino HTTP Task</a></font></li> </ul> <hr WIDTH="100%"> <ul><li> <font size=+2><a href="/?openserver">Access through the Domino for IBM HTTP Server Connector</a></font></li> </ul> <hr WIDTH="100%"> <ul><li> <font size=+2><a href="/compare/cindex.html">Compare the Domino HTTP Task to the Domino for IBM HTTP Server Connector</a></font></li> </ul> </body> </html> Figure 61. HTML code for a Web page with different links As shown in Figure 61, the Domino HTTP task is accessed within the HTML code by specifying its port ( http://domweb1:8260/?openserver). However, you do not need to specify the Domino for IBM HTTP Server connector port ( /?openserver) since you are already using the IBM HTTP Server port when you are requesting this page (in our case, http://domweb1:8230). Figure 62. HTML page with links to different servers and comparison Migrating to the Domino for IBM HTTP Server 147 Finally, another directory called compare was created which was used to hold the cindex.html page that is described in Figure 63. You may find it useful to use the comparison HTML code to display the Domino HTTP task and the Web connector in parallel frames. Figure 63 shows the HTML code that will allow you to display the frames. <HTML> <FRAMESET COLS="500,*"> <FRAME MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=AUTO SRC="http://domweb1:8260/?openserver"> <FRAME SRC="http://domweb1:8230/?openserver" NAME="main"> </FRAMESET> </HTML> Figure 63. HTML code to display the comparison in frames The left frame is filled with HTML from port 8260 (which is the Domino HTTP task) while the right frame is filled with HTML from port 8230 (which is the port for the Domino for Web connector). Figure 64 on page 149 displays the HTML page as a result of the comparison code. 148 Domino for S/390 and Web Server Integration Figure 64. HTML output to the frames comparison Migrating to the Domino for IBM HTTP Server 149 150 Domino for S/390 and Web Server Integration Chapter 11. Troubleshooting This section contains basic troubleshooting guidelines for the Web connector. It does not cover problem determination for either Lotus Domino for S/390 Server or IBM HTTP Server. For further information on those topics, refer to the following redbooks: • OS/390 e-business Infrastructure: IBM HTTP Server 5.1 Customization and Usage, SG24-5603 • Lotus Domino for S/390 Release 5: Installation, Customization, and Administration, SG24-2083 • Lotus Domino for S/390 Release 5: Problem Determination Guide, SG24-5599 • Debugging UNIX System Services, Lotus Domino, Novell Network Services, and other Applications on OS/390, SG24-5613 11.1 Domino for IBM HTTP Server dependencies Domino for IBM HTTP Server is a component of Lotus Domino for OS/390 version 5.0.1. In order to use the Domino for IBM HTTP Server connector (Web connector), you must have both a Domino for OS/390 Server and an IBM HTTP Server installed and operating. 11.1.1 Software and required maintenance The Lotus Domino for OS/390 Server and Web connector requires a minimum level of OS/390 Version 2 Release 7, and IBM HTTP Server for OS/390 Version 5.1. Proper functioning of the Web connector is dependent upon correct installation, configuration, and maintenance level of the following: • • • • • • • Lotus Domino for OS/390 IBM HTTP Server for 390 Domino for IBM HTTP Server IBM OS/390 Base eNetwork Communications Server OS/390 UNIX System Services OS/390 Language Environment The following Web page contains a list of required PTFs for the IBM HTTP Server: http://www.ibm.com/software/webservers/httpservers/doc51.html © Copyright IBM Corp. 2000 151 The following Web page contains a list of required PTFs for the Lotus Domino for OS/390 Server: http://www.ibm.com/s390/products/domino/domptf.html In order to use OS/390 Authentication Services, OS/390 Security Server with PTFs OW35502 and OW39716, or Solution Developer software with equivalent capability, is required. 11.1.2 Network In order for the Domino for IBM HTTP Server connector to access the Domino server, network connectivity and routing between browser clients and the Domino for OS/390 host must be established. If the Domino server’s name is not defined to Domain Name Server, then the Domino server name and IP address must be added to the S/390 server’s local host file, as well as to the client workstations’ local hosts files. Note that this may be an unrealistic approach in a Web client environment. 11.1.3 Security The Web connector installation documentation contains required resource definitions. The Web connector requires access to the Domino server’s /notesdata directory and files. The security definitions allow the Web connector to behave as a surrogate for the Domino server when it accesses these files. The Web connector provides capability to use OS/390 authentication as well as Domino standard authentication. Whether the user is authenticated with OS/390 or Domino, once the user’s identity is established, the Notes database Access Control List (ACL) determines that user’s ability to access the database. 11.1.4 Availability of system resources The Domino server for which the Web connector is configured must be active and responding to requests. In order to assure this, adequate CPU cycles, memory, and network bandwidth should be provided. The UNIX System Services parmlib member BPXPRM00 must be properly configured. Recommendations for the HTTP server can be found in OS/390 e-business Infrastructure: IBM HTTP Server 5.1 Customization and Usage, SG24-5603. 152 Domino for S/390 and Web Server Integration 11.2 Error categories During our installation and testing of the Web connector, we encountered four problem areas: 1. Web connector startup failure 2. Web connector abends 3. Inability to connect to Domino via browser client 4. Ability to connect to Domino, but request for resource fails 11.2.1 Possible causes of Web connector initialization errors Web connector initialization errors can be caused by improper configuration of the HTTP configuration directives, or the Web connector GWAPI plug-in statements. The Notes server ID file must not use a password. There is no mechanism for entering this password when the Web connector starts. 11.2.2 Possible causes of abends Web connector abends can be caused by failure to set the APF authorization bit on the Domino for OS/390 executables in directory /usr/lpp/lotus/notes/latest/os390. Abends can also be caused if the user ID for the Domino server is not set correctly in the DOMINO-CONNECTOR-SETUP protection directive of the httpd.conf file. The IBM HTTP Server configured for the Web connector must be recycled if the Domino server is shut down. Failure to do so may cause the IBM HTTP Server to abend when a Domino database is requested. 11.2.3 Possible causes of connectivity problems Web connector connectivity problems errors can have various causes. These include the following: 1. Domino server is unavailable 2. Network or DNS configuration problems 3. Improper configuration of HTTP server 4. HTTP server busy (no threads available) 5. Improper sequence of server startup Troubleshooting 153 11.2.4 Failure to access Domino resources After the Web connector is properly configured and initialized, failure to access Domino resources can be caused by: 1. Required Web connector security definitions not in place 2. Authentication denied due to invalid RACF credentials (LNOTES segment incorrectly defined or not uniquely mapping to shortname) 3. Authentication denied by Domino 4. Access by effective Notes user rejected by database ACL 5. Requested database does not exist on the Domino server 6. Domino server not responding 11.3 Tools for problem determination Tools for troubleshooting include IBM HTTP Server and Web connector traces and logs, SDSF syslog, SDSF sysout job log, MVS and UNIX System Services display commands, RACF or other security system display commands, Domino logs and Domino administration tools. If connectivity problems are suspected, TCP/IP ping, netstat, and traces can be useful. 11.3.1 Error messages Web connector initialization error messages and codes are listed in Appendix A, “Web connector initialization error messages” on page 169. 11.3.2 Installation verification checklist Assuming that you have a previously working Domino server, the most frequent cause of errors is improper configuration of the Web connector. We have included several appendixes to help you configure it. Appendix B, “Configuration value chart” on page 173 contains a list of configuration values with spaces for you to write in your specific values. The checklist provided in Appendix C, “Installation verification checklist” on page 175 and the RACF security charts in Appendix D, “RACF security charts” on page 177 should be reviewed before beginning more detailed problem analysis. 11.3.3 RACF security reference materials Appendix D, “RACF security charts” on page 177 contains three charts: • IBM HTTP Server • Domino for IBM HTTP Server connector 154 Domino for S/390 and Web Server Integration • Domino and DOMCON for OS/390 These charts contain the RACF commands necessary to grant permission to required resources for the Web connector and Domino. Additional information can be found in: • RACF Command Language Reference, SC23-3731 • RACF Messages and Codes, SC23-3730 • Setting Up the Domino for HTTP Connector (shipped with the Lotus Domino for S/390 R5 server code CD-ROM) • Lotus Domino for S/390 Release 5: Installation, Customization, and Administration, SG24-2083 11.3.4 Activating Web connector trace messages The connector can optionally issue debug/trace messages to the IBM HTTP Servers trace log. These messages may be helpful in diagnosing problems. The messages can be found in the Web connector’s JES job log. They are identified by the DOMIHTTP message ID. The trace messages are controlled by the _DOMIHTTP_DEBUG environment variable. Set this variable in the IBM HTTP server’s environment variable file for your IBM HTTP server instance (/etc/httpd.envvars, by default), or in the shell environment (/etc/profile or WEBSRVs .profile) if you are running the IBM HTTP server from the UNIX shell. Set this variable to an integer value between 1 and 9 to activate messages, or to a value of 0 to turn them off. A _DOMIHTTP_DEBUG setting of 1 produces just a couple of messages per request, to confirm the connector's handling of the request. Larger values produce more messages. When you activate the Web connector trace, messages appear in the Web server job log showing that the Web connector GWAPI is initialized. DOMIHTTP-ServerInit> Initialization started, API version is 1.2. DOMIHTTP-ParseInitParms> SSL port is 8251. DOMIHTTP-ParseInitParms> Use of OS/390 creds for Domino requests is enabled. 2 DOMIHTTP-ServerInit> Initializing interface to Domino. DOMIHTTP-ServerInit> Interface to Domino successfully initialized. DOMIHTTP-ServerInit> Initialization completed successfully. Troubleshooting 155 11.3.5 Activating the HTTP server trace The HTTP server can optionally issue trace messages showing the flow of HTTP commands between client and server. These options are controlled by parameters on the IBM HTTP Server startup procedure JCL EXEC statement. The trace can be deactivated or modified dynamically while the HTTP server is running. There are three trace levels available: v vv mtv Verbose Very verbose Much too verbose The -nodebug parameter deactivates tracing. The following sample JCL PROC and EXEC statements activate very verbose tracing: -------------------------------------------------------//WEBCONN PROC P1='-B', // P2='-r /etc//httpd.conf', // P3='-vv', // LEPARM='ENVAR("_CEE_ENVFILE=/etc//httpd.envvars")' //********************************************************************* //WEBSRV EXEC PGM=IMWHTTPD,REGION=0K,TIME=NOLIMIT, // PARM=('&LEPARM/&P1 &P2 &P3') //*PARM=('HEAPP(ON) ALL31(ON) POS(ON) STAC(200K) &LEPARM/&P1 &P2 &P3') ------------------------------------------------------------ The following commands can be used to modify the trace level while the IBM HTTP Server is running: F WEBSRV,APPL=-v F WEBSRV,APPL=-vv F WEBSRV,APPL=-mtv F WEBSRV,APPL=-nodebug 11.4 IBM HTTP Server logs The IBM HTTP Server can be configured to generate several types of log records. The location and control of the log files can be specified by the various httpd.conf file log directives. New log files are created nightly by the server at midnight. Example: httpd-errors.Aug131999 156 Domino for S/390 and Web Server Integration Two types of logs are useful for diagnosing Web connector problems. Here are the default AccessLog and ErrorLog statements which come with the IBM HTTP Server: AccessLog ErrorLog /usr/lpp/internet/server_root/logs/httpd-logs /usr/lpp/internet/server_root/logs/httpd-errors The httpd error logs show errors at Web connector startup or abend. The httpd access logs show the details of every request made to the Web server. This includes the requester's origin, the name of the resource being requested, and HTTP return codes for that request. These codes are as follows: 1xx 2xx 3xx 4xx 5xx - Informational Success Redirection Client Error Server Error You can browse these logs using the ISHELL, or use the IBM HTTP Server’s administration interface if you have Web administrator authority. For details about configuring and viewing the HTTP Server logs, refer to OS/390 e-business Infrastructure: IBM HTTP Server 5.1 Customization and Usage, SG24-5603. 11.4.1 Troubleshooting Web connector startup errors Most startup errors are caused by errors on httpd.conf directives in the Web connector IBM HTTP Server configuration file. 11.4.1.1 Symptoms When the IBM HTTP Server is fully initialized you should see these messages in the OS/390 syslog: $HASP373 WEBSRV STARTED IMW3534I PID: 721420340 SERVER STARTING IMW3536I SA 721420340 0.0.0.0:8250 * * READY If the IBM HTTP server starts and then ends, this can indicate errors in the configuration file. Possible messages include: IMW0003E Configuration not loaded IMW0243E Configuration file /etc/httpd.conf not found or in error. The server cannot start without a valid configuration file. IMW0234I Starting.. httpd ............ This is IBM HTTP Server V5R1M0 Troubleshooting 157 ............ Built on Mar 23 1999 at 08:32:34. ............ Started at Fri Aug 20 12:09:01 1999 ............ Running as "WEBSRV", UID:0, GID:6789. 20/Aug/1999:12:09:01 +0000 : ErrorLog.... 20/Aug/1999:12:09:01 +00 directive is not valid: 9 @(#)53 1.9 src/etc/httpd.conf, web, web4a1 AA74B80 at 20/Aug/1999:12:09:01 +0000 : ErrorLog.... 20/Aug/1999:12:09:01 +00 WEBSRV ended due to errors. 11.4.1.2 Solutions 1. Examine the messages in IBM HTTP Server job log. The configuration statement which caused the error will be identified by this message: IMW0243E Configuration file /etc/httpd.conf not found or in error. Search the Web server job log for these words: bad configuration directive The text of the configuration directive which is in error is printed next to the message, as displayed in the following example: ****************************************************************** ErrorLog.... 20/Aug/1999:13:32:43 +0000 IMW0013E The configuration .9 src/web/etc/httpd.conf, web, web4a1J 6/21/95 10:19:08 Bad configuration directive: "9 @(#)53 1.9 src/web/etc/httpd.conf, ******************************************************************** 2. Fix the configuration statement. Change the Web server started procedure to activate the -vv trace. Then restart the Web server. 3. During our testing, we found it necessary to place the Web connector plug-in directives in this order within the httpd.conf file. All of these statements must be placed before the default Pass directive. NameTrans NameTrans /icons/* / DOM_INST_DIR/notes/latest/os390/domihttp:DomIcons DOM_INST_DIR/notes/latest/os390/domihttp:DomRootCmds Protection DOMINO-CONNECTOR-SETUP { Mask Anybody UserId DOM_SERVER_ID } Protect Protect Protect Protect *.nsf *.nsf/* /domicons/* /domjava/* DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP DOMINO-CONNECTOR-SETUP ServerInit DOM_INST_DIR/notes/latest/os390/domihttp:ServerInit "-sslport SSL_PORT" Service *.nsf DOM_INST_DIR/notes/latest/os390/domihttp:Service Service *.nsf/* DOM_INST_DIR/notes/latest/os390/domihttp:Service 158 Domino for S/390 and Web Server Integration ServerTerm DOM_INST_DIR/notes/latest/os390/domihttp:ServerTerm Pass Pass /domicons/* /domjava/* DOM_DATA_DIR/domino/icons/* DOM_DATA_DIR/domino/java/* 4. Examine MVS syslog and IBM HTTP Server job log for security violation messages. The IBM HTTP Server must own the files within the server_root directory. The IBM HTTP Server must have read access to the BPX.SERVER RACF facility class, and read access to BPX.SRV.DOM_SERVER_ID plus other IDs for which it will become a surrogate user. 5. Examine the HTTP Server error log in the server_root log file. 6. Make sure that the Port and SSLPort statements are correct, and that the ports are not being used by another Web server or TCP/IP application. 7. If the Domino server has been recycled, make certain that the IBM HTTP Server has also been recycled. The Web connector API uses shared memory resources, and connects to a specific instance of the Domino Server. When the Domino server is brought down, it is necessary to bring down the HTTP Server as well, in order to clean up the shared memory segments. We encountered the following problem when we shut down the Domino server with the HTTP Server running, and tried to restart the Domino: DOMINO:/notesdata1: >server CEE3204S The system detected a protection exception. From entry point OSLockReadSem at compile unit offset +00000064 at addr ess 078544DC. /ospanic.c at entry The shell command ipcs -a displayed this output: Shared Memory: T m m ID KEY MODE 171076 0xf8138801 --rw-rw---171078 0xf8138800 --rw-rw---- OWNER GROUP CPID LPID DOMINO LOTUSGRP 67108895 67108895 DOMINO LOTUSGRP 67108895 419430430 We attempted to restart the Web server prior to cleaning up the Domino memory and queues. That resulted in these messages: IMW0234I Starting.. httpd IMW0235I Server is ready. Fatal Error signal = 0x0000000b PID/Server-TID/Kernel-TID = a000026/26010018/0a7 Freezing all server threads ... ............ This is IBM HTTP Server V5R1M0 Troubleshooting 159 To fix this problem, we brought down the Domino server and performed cleanup as documented in 5.6, “Dealing with abnormal terminations” on page 58. 11.5 Troubleshooting Web connector GWAPI initialization errors Errors in the directives for the Web connector may prevent the IBM HTTP Server from starting. 11.5.1 Symptoms The Web connector may not initialize when the Web connector statements in httpd.conf are defined in the wrong order. After the HTTP Server starts, you should examine the job log for messages. The HTTP Server may start, but the Web connector service may not initialize correctly, as indicated in the sample below: DOMIHTTP-012 Unrecognized -platcreds value: allow DOMIHTTP-002 DOMIHTTP encountered errors during initialization. The DOMIHTTP service is not available for use. When trying to start the HTTP Server configured to connect with one of our Domino servers, we encountered this error: $HASP373 WEBSRV STARTED IMW3534I PID: 268435503 SERVER STARTING IMW3536I SA 268435503 0.0.0.0:8230 * * READY ICH408I USER(DOMINIO2) GROUP(LOTUSGRP) NAME(DOMINO USER 2 /notesdata1/gtrhome/ CL(DIRACC ) FID(01D6D7F1C8C6F1000F29000007E00000) INSUFFICIENT AUTHORITY TO OPENDIR ACCESS INTENT(R--) ACCESS ALLOWED(GROUP ---) ICH408I USER(DOMINO2) GROUP(LOTUSGRP) NAME(DOMINO USER 2 /notesdata1/mail/user1.nsf CL(FSOBJ ) FID(01D6D7F1C8C6E20010320000000A0000) INSUFFICIENT AUTHORITY TO OPEN ACCESS INTENT(RW-) ACCESS ALLOWED(GROUP ---) ICH408I USER(DOMIN02) GROUP(LOTUSGRP) NAME(DOMINO USER 2 /notesdata1/mail/user1.nsf CL(FSOBJ ) FID(01D6D7F1C8C6E20010320000000A0000) INSUFFICIENT AUTHORITY TO OPEN ACCESS INTENT(R--) ACCESS ALLOWED(GROUP ---) $HASP395 WEBSRV ENDED This problem was caused by placing the wrong user ID for that Domino server on the DOMINO-CONNECTOR-SETUP Protection directive. In the example 160 Domino for S/390 and Web Server Integration above, we were running a Domino server with user ID DOMINO1; however, we had coded user ID DOMINO2 on the Protection directive. Improper sequencing of the Domino and IBM HTTP Server startups, or failure to clean up shared resources, can cause the IBM HTTP Server to abend at startup. The IBM HTTP Server with the Web connector GWAPI uses message queues to communicate with Domino. If the IBM HTTP Server abends, it is necessary for Domino to relinquish these queues before the IBM HTTP Server is restarted. You may encounter the IBM HTTP Server abend as described below: AA74B80 at 26/Aug/1999:14:52:02 +0000 : DOMIHTTP-ServerInit> Initializing inte... CEE3250C The system or user abend U 034 R=07110304 was issued. From compile unit ./ospanic.c at entry point Panic at compile unit offset ... CEE3DMP V2 R7.0: Condition processing resulted in the unhandled condition. In this case you will need to shut down the Domino server, perform cleanup procedures, restart the Domino server, then restart the IBM HTTP Server. 11.5.2 Solutions for Web connector GWAPI initialization errors 1. Certain errors are reported in IBM HTTP Server logs: DOMIHTTP-001: Connector Initialization Errors ICH408I (Insufficient access authority for BPX.SRV.userid profile) Other errors are reported to the browser user: Browser Error 500: IMW0240E Access denied - unauthorized program loaded Browser Error 500: IMW0241E Access denied - surrogate user setup error If you receive these errors, refer to the error codes listed in Appendix A, “Web connector initialization error messages” on page 169, and review required RACF definitions. 2. Examine the ServerInit and other Web connector statements for syntax errors. The options which follow the domithhp:ServerInit parameter on the ServerInit statement must be enclosed by double quotes. 3. Review the installation verification checklist in Appendix B, “Configuration value chart” on page 173. 4. Examine the HTTP Server JES job log. 5. Examine the OS/390 syslog for security violation messages. Troubleshooting 161 6. Examine the IBM HTTP Server error logs. 7. Examine the ServerInit statement for the Web connector plug-in service. Make sure the SSL_Port number is correct, and that the ports do not conflict with those of another HTTP Server. 8. Activate the Web connector trace facility by adding the _DOMIHTTP_DEBUG environment variable to the HTTP Server’s httpd.envvars file. Refer to instructions in 11.3.4, “Activating Web connector trace messages” on page 155 and to the Domino for HTTP Server Installation Guide for further information. 11.6 Troubleshooting connectivity problems Connectivity problems are indicated by the inability to connect to Domino via a browser client. 11.6.1 Symptoms When you open a URL, you might receive a message box with the following text: There was no response. The server could be down or is not responding. If you are unable to connect again later, contact the server’s administrator. If you access a Domino server for which the Web connector has not been configured, or use a port for which no HTTP servers are configured, you get a message like this: Netscape is unable to locate the server domweb2:8250 When you run multiple HTTP servers, you must use the HTTP server which is configured with the right /notesdata path for the Domino server you are attempting to access. You must also use the correct port. In the following case, we have two HTTP servers named WEBSRV1and WEBSRV2, connected to corresponding Domino servers named DOMWEB1 and DOMWEB2. For Notes protocol (NRPC), these servers were using the following addresses with proper DNS support. DOMWEB1 IP address=10.10.1.1 DOMWEB2 IP address=10.10.1.2 The server configurations were: WEBSRV1 listening on port 8230 (non-specific bind), and connected to Domino server DOMWEB1. 162 Domino for S/390 and Web Server Integration WEBSRV2 listening on port 8250 (non-specific bind), and connected to Domino server DOMWEB2. Note that the HTTP servers were configured as generic listeners (non-specific bind). This means that a listen request will bind to all stack-defined addresses. When we tried to access DOMWEB2 using the port of WEBSRV1, we were connected with DOMWEB1 instead of DOMWEB2. This is because WEBSRV1 and note WEBSVR2 was listening with non-specific bind on its assigned port. In fact, with this configuration it does not matter which of the stack-defined addresses are used. All that matters is the port being used. Another conceptual mistake made in this test was that of intuitively associating each http server with the address being used for NRPC by the corresponding Domino server. This association does not exist; the addresses are totally unrelated. In fact, it would be valid to configure the http server having specific bind to an address different from that of the corresponding Domino server. 11.6.2 Solutions for connectivity problems This section provides solutions for connectivity problems. 11.6.2.1 Actions to take from the client workstation: 1. Verify that the URL contains the correct Domino server hostname and HTTP port. 2. Verify that the Domino server is up. 3. Using the Notes client, verify that the database you are trying to access exists. 4. Verify that you have a compatible browser. We tested the Netscape browsers V4.5, 4.6, and 4.7. Some functions did not work correctly on V4.5. 5. Verify that you can ping the Domino/390 host from the client workstation: If ping times out, verify that the Domino/390 hostname has been added to your Domain Name Server or your local hosts file. 6. Determine the client machine IP address by issuing the appropriate commands. From Windows NT, issue IPCONFIG. From Windows 95/98, use WINIPCFG. 7. If you can ping the Domino/390 host, ping the client from the S/390 host: From TSO: Troubleshooting 163 ping 10.10.1.201 Use oping from shell or telnet sessions. 8. If the Domino/390 hostname is in the DNS or hosts file, but you cannot ping the 390 host from the client, or you cannot ping the client from the S/390 host, then investigate routing problems. One useful command is the tracerte command: tracerte 10.10.1.201 otracerte 10.10.1.201 (from TSO) (use otracerte from telnet or OMVS) From the client, the command is tracerte. Here is output from tracerte which indicates a routing problem: tracerte DOMWEB1 1 <10ms <10ms 2 x <10ms x 10.10.1.1 x Request timed out 11.6.2.2 Actions to take from the S/390 host machine: 1. Verify that TCP/IP is up and working properly. We received this message when we tried to ping our Domino server and TCP/IP had been having resolver problems: EZA0455E BeginTcpIp failed: No TCP/IP service available (8544) 2. If TCP/IP is up, verify that the link device has been started. This TSO command shows the device status. netstat dev onetstat -d (from OMVS shell or telnet) The device and link associated with your IP address should have a status of Ready, as in the display below. DevName: OSA2220 LnkName: OSAL2220 DevType: LCS LnkType: TR DevNum: 2220 Status: Ready 3. Verify that the IBM HTTP Server is up and listening on the correct port. This TSO command will display the ports and associated processes: netstat conn onetstat -p TCPIP (from OMVS shell or telnet) The -p parameter specifies the TCP/IP stack proc name. This display shows that IBM HTTP Server WEBAPPLE is listening on port 8100. EZZ2587I WEBAPPLE 000C1 0.0.0.0..8100 0.0.0.0..0 Listen 4. Verify that the IBM HTTP Server port is configured correctly in the httpd.conf file. Use the IBM HTTP Server logs to determine whether the request was made to the wrong port. 164 Domino for S/390 and Web Server Integration 5. Verify that the Domino server is up and listening on the correct port. The netstat conn command shows that our Domino server, with a user ID of DOMINO1, is up and listening generic (on all IP addresses) on port 1352. EZZ2587I DOMINO1 00579 10.10.1.201..1352 0.0.0.0..0 Listen 6. If Domino is not responding, or is in a CloseWait state, examine the TCPIP job log and the Domino noteslog files for errors. This Domino command can be used to display port traffic. > show port tcpip The netstat byteinfo command displays the connections, and the number of bytes that are being transferred. 11.7 Troubleshooting authentication problems If the user can connect with the Domino server but the attempt to open a Notes database fails, the cause is probably an authentication problem. First you need to determine that the actual security scheme in place is the desired one. By activating the Web connector trace and HTTP trace, you can see which database was requested, what type of authentication credentials were presented, and whether access was granted. It is highly recommended that you review Chapter 6, “OS/390 authentication support for Domino” on page 79 in order to understand the flow of authentication logic. 11.7.1 Symptoms of security-related problems If you enable OS/390 authentication, and the user has a valid LNOTES segment in the RACF user ID profile, the Web connector will attempt to map the LNOTES value into the shortname in the Person documents in the Domino directory. For this process to be successful, there can be one and only Person entry satisfying the mapping. You can see the result of the process in the Web connector trace entries in the job log: AAE2F20 at 25/Aug/1999:10:43:22 +0000 : DOMIHTTP-OS309toNotesIdMap Userid (user1) mapped to valid shortname (user1); fullname is CN=Jane User1/O=Itsoweb. Effective username will be set to user1. The LNOTES segment value in the RACF user profile is case-sensitive, but the mapping to shortname process is not. If the mapped shortname is not unique, or is not found within the Domino directory, the user's identity is passed to Domino as non-authenticated or anonymous. The trace will show: AB2AA98 at 25/Aug/1999:10:48:18 +0000 : DOMIHTTP-OS309toNotesIdMap> Userid (user1) OS/390. Effective username will not be changed. Troubleshooting 165 At that point, the user could enter a valid Notes name and Notes Web password. If the name and password are valid, and the ACL of the database permits access, the request would be granted. If the user does not have a Notes ID, then the request would be passed as anonymous. If the ACL of the database does not allow read access to anonymous, your browser will inform you that authorization failed and prompt for retry. The Web connector trace shows: AAE4DF8 at 25/Aug/1999:10:45:40 +0000 : DOMIHTTP-OS309toNotesIdMap> Userid (l (sssss). Effective username will be handled as Anonymous. If the Notes administrator has not enabled HTTP access in the Person document, authorization fails. Error 401 You are not authorized to perform this operation Lotus-Domino Release 5.01a.00 The Netscape browser produces these errors when a user tries to open file which does not exist: Error 404 IMW0229E The file was not found, even after searching on any extensions to the file name. The file does not exist or is read-protected. 11.7.2 Solutions for security problems 1. Activate the Web connector and IBM HTTP Server traces. If an OS/390 authentication scheme is being used, verify that PTFs OW35502 and OW39716 have been applied. If so, you can proceed to verify that the OS/390 authentication has been enabled properly. The third line below indicates that we have enabled OS/390 authentication support. DOMIHTTP-ServerInit> Initialization started, API version is 1.2. DOMIHTTP-ParseInitParms> SSL port is 8251. DOMIHTTP-ParseInitParms> Use of OS/390 creds for Domino requests is enabled. DOMIHTTP-ServerInit> Initializing interface to Domino. DOMIHTTP-ServerInit> Interface to Domino successfully initialized. DOMIHTTP-ServerInit> Initialization completed succesully. 2. If OS/390 authentication support is enabled, you may have forgotten to set (or have incorrectly set) the HTTP Server user ID RACF permission to use the application identity mapping interface. This typically shows in the Web connector’s trace with the following messages: DOMIHTTP-Service> ecb.ContentType = <> 166 Domino for S/390 and Web Server Integration DOMIHTTP-Service> ecb.TotalBytes = 0 DOMIHTTP-ConnReq::extract> Got HTTPS=<OFF>. DOMIHTTP-ConnReq::extract> Got AUTH_TYPE=<Basic>. DOMIHTTP-OS390toNotesIdMap> Entered. DOMIHTTP-ConnReq::extract> Got AUTH_STRING=<bWFnbmV0bzptYWduZXRv>. DOMIHTTP-GetBasicCreds> Retrieved Basic username=magneto and password of length DOMIHTTP-OS390toNotesIdMap> RACF_id.length=7, RACF_id.name=MAGNETO. DOMIHTTP-OS390toNotesIdMap> IRRSIM00 call rc’s: SAF_rc=8, RACF_rc=8, RACF_rs=20. DOMIHTTP-006 An internal error occurred while processing the request. Fcn: OS390toNotesIdMap, error code: 292. Additional symptom information follows in message DOMIHTTP-007. DOMIHTTP-007 IRRSIM00 call failed: check authority to resource IRR.RUSERMAP. DOMIHTTP-OS390toNotesIdMap> No mapping has occurred due to a severe internal DOMIHTTP-OS390toNotesIdMap> Returning with code=0. DOMIHTTP-Service> Call to OS390toNotesIdMap failed. If that is the case, refer to 6.4, “Enabling OS/390 RACF-based authentication” on page 95. 3. Determine which Notes database was requested by examining the Web server started task job log and Web server logs. 4. If OS/390 authentication support is enabled, does the requesting user have an LNOTES segment? Use this command to display the LNOTES segment: lu userid LNOTES If the user has an LNOTES segment, check the Person document in the Domino directory to determine if the shortname matches the RACF LNOTES user ID (it has to be the one and only shortname match). Then check the access control list of the requested database. If there is no match, the request should be processed as Anonymous. In either case, check the access control list to determine the access level for the mapped Notes user or Anonymous. If there is no entry for Anonymous, then the default access would take effect (which may be set to “none”). 5. If the user enters a Notes user ID and authorization fails, check the following items: Does the user have Allow HTTP setting enabled in the Person document in the Domino directory? If so, did the user enter the correct Web password? 6. If the user has a valid Notes ID and entered the correct password, check the Access Control List (ACL) to determine whether access is allowed. Note that some browsers cache the client’s credentials. If you are doing testing, and you need to enter a different user ID, it is best to close and reopen the browser session before changing identities. Troubleshooting 167 168 Domino for S/390 and Web Server Integration Appendix A. Web connector initialization error messages This appendix explains Domino for IBM HTTP Server connector (Web connector) initialization error messages. A.1 DOMIHTTP-001 The Domino for IBM HTTP Server connector issues message DOMIHTTP-001 to the IBM HTTP server’s trace and error log when it encounters an error in setting up its interface to Domino. The error code provided in this message is the Domino error code returned by the initialization call. Most of the errors encountered result from problems in Domino initialization. The following list summarizes the error codes you are most likely to encounter and suggestions for resolving the error: 0x0102 (PKG_OS_ERR_PROTECTED) - Cannot write or create file (file or disk is read-only). When this occurs during initialization, it is probably because the HTTP Server user ID/process does not have write access to the names.nsf database. To resolve this problem, use the chgrp command (to change the owning group, if necessary) and the chmod command (to change the permission bits) to give members of the Domino UNIX group (for example, NOTES) read/write access to the names.nsf file. This error can also occur during normal connector processing, in which case it shows up as an error response to the browser with the message text given above. To resolve this problem, use the chgrp command (to change the owning group, if necessary) and the chmod command (to change the permission bits) to give members of the Domino UNIX group (for example, NOTES) read/write access to the file. 0x0107 (PKG_OS_ERR_MEMORY) - Insufficient memory There is not enough memory available. Increase the region size for the job or login session running the IBM HTTP Server. 0x1007 Domino initialization can not find the ltscu2e.tlb file. This is a Domino translation resource file. Domino looks for this file in the Domino executables directory (which is usually usr/lpp/lotus/notes/latest/os390). © Copyright IBM Corp. 2000 169 Domino determines the location of its executable directory by searching the directories listed in the PATH environment variable for the Domino executable programs. To resolve this problem, ensure that the Domino executable directory (for example, /usr/lpp/lotus/notes/latest/os390) is listed in the PATH environment variable. Also, ensure that the Domino bin directory (/usr/lpp/lotus/bin) is not listed in the PATH environment variable, since its presence in PATH can cause Domino to incorrectly conclude that it is the Domino executable directory. 0x175b (ERR_BSAFE_WRITE_PROTECTED) - The ID file is write protected. This message appears when the HTTP server user ID process either has no access at all, or read-only access, to the server’s ID file. The file in question is the one designated by the ServerKeyfilename variable in notes.ini. Usually this file is /notesdata/server.id. To resolve this problem, use the chgrp command (to change the owning group, if necessary) and chmod command (to change the permission bits) to give members of the Domino UNIX group (for example, NOTES) read/write access to the names.nsf file. 0x1902 (PKG_SECURE_ERR_SECURE_NOKEYFILE) - Could not open the id file. This is typically the first error you may encounter when trying to run the Connector from a non-superuser user ID. This error results from a number of underlying errors. Some of the specific causes include: • The notes.ini file could not be found. Domino searched the current directory and then the directories listed in the PATH environment variable for this file and could not locate the file. To resolve this problem, add the Domino data directory to the IBM HTTP servers PATH environment variable. • The notes.ini file was found, but the HTTP server user ID process does not have write access to the file. To resolve this problem, modify the group and permissions for the file so that the file is owned by the Domino UNIX group (NOTES) and ensure that group has read-write access. Ensure that the IBM HTTP Server user ID is a member of the NOTES group. 170 Domino for S/390 and Web Server Integration 0xff99 The Domino server is not configured to require unambiguous Web user names using the NoAmbiguousWebNames Domino setting. To resolve this problem, use the viascii utility to add the following setting to the notes.ini file for your Domino server: NoAmbiguousWebNames=1 The Domino for IBM HTTP Server requires this setting in order to avoid potential security exposures in its translation of OS/390 credentials to Domino credentials 0xff9a Domino initialization could not find the notes.ini file in either the current directory or in any of the directories named in the PATH environment variable. To resolve this problem, add the Domino data directory to the IBM HTTP Server’s PATH environment variable. A.2 ICH408I (Insufficient access authority) for BPX.SRV.userid profile Symptom: You are receiving message ICH408I on the OS/390 console, or in the job log for the IBM HTTP Server, for authorization failures related to a BPX.SRV.userid SURROGAT class profile for the Domino server user ID. Cause: The IBM HTTP Server protection directives in httpd.conf specify that the Web server should process requests for Domino databases under the security identity of the Domino server user ID. However, the user ID running the IBM HTTP Server has not been authorized to act as a surrogate for the Domino server user ID. To resolve this problem, use the following TSO command to verify that the IBM HTTP Server user ID has been given read access to the SURROGAT class profile for the Domino server user ID. For example, if the Domino server user ID is SERVER, this profile is called BPX.SRV.SERVER and it can be listed with the following command: rlist surrogat bpx.srv.server authuser If this profile has not been defined, it can be defined with the TSO RDEFINE command, for example: rdefine surrogat bpx.srv.server uacc(none) Web connector initialization error messages 171 If the profile is defined but the IBM HTTP Server user ID is not listed, use the TSO PERMIT command to grant it read access to this profile. For example, if the IBM HTTP Server user ID is WEBSRV, access can be granted with the command: permit bpx.srv.server class(surrogat) id(websrv) acc(read) A.3 Browser Error 500: IMW0240E Access denied Symptom: The browser receives an Error 500 response, with message IMW0240E (Access denied - unauthorized program loaded) after a user responds to a browser username and password challenge for access to some URL. This error may occur even if the request is for something other than a Domino database. Cause: The system services that the IBM HTTP Server uses to set up security contexts for processing requests requires that all of the modules (programs and DLLs) loaded into the IBM HTTP Server address space come from data sets or HFS files that are marked as program-controlled. This error message is received when one or more modules have been loaded from non-program-controlled data sets or HFS files. Assuming that the IBM HTTP Server was working correctly before you activated the Domino for IBM HTTP Connector, the likely cause is that the Web connector or one of the Domino DLLs is not marked as program-controlled. Resolution: To resolve this problem, use the ls -E UNIX shell command to verify that the program-controlled external attribute is set for all files in the /usr/lpp/lotus/latest/os390 directory. If not, use the extattr +p command to set the program-controlled extended attribute. You need to have ACCESS(READ) to RACF profile BPX.FILEATTR.PROGCTL in order to execute the extattr command. 172 Domino for S/390 and Web Server Integration Appendix B. Configuration value chart Copy this page and add the configuration values. Use it along with Appendix C.1, “Checklist” on page 175 when installing your systems. TCP/IP address of Domino server HTTP Server PROC name HTTP Server user ID/group ID HTTP Server port HTTP Server SSL port (if using SSL) HTTP server_root directory Domino Notes server name Domino Notes server user ID/group ID Notesdata directory name OS/390 authentication enabled? (Y/N) OS/390 SSL authentication used? (Y/N) Names of resources for which certificates are required (https:) © Copyright IBM Corp. 2000 173 174 Domino for S/390 and Web Server Integration Appendix C. Installation verification checklist This appendix contains a checklist that you can use when setting up the Web connector program. Use it along with Appendix D, “RACF security charts” on page 177 when installing your systems. C.1 Checklist 1. Verify that following line been added to notes.ini: NoAmbiguousWebNames=1 2. Verify that the Notes server ID file does not use a password. 3. If the Domino for HTTP Server user ID is not UID(0), then verify that the /notesdata directory gives the Domino group read/write/execute permission. Verify that the server.id, notes.ini, log.nsf and names.nsf files grant the Notes group read/write permission. 4. Check that the Domino product executables files are program-controlled. This attribute is required to allow the GWAPI plug-in to change client thread identity. cd /usr/lpp/lotus/notes/latest/os390 ls -E You should see the p and s flags set on all files, similar to the following example. -rwxr-xr-x -ps 1 AAAAAA SYS1 7344664 Jul 29 19:41 ltscu2e.tlb If the protect bit is not set, logon with a user ID that has read permission to RACF resource BPX.FILEATTR.PROGCTL. extattr +p * 5. Check the httpd.envvars file. The PATH statement should include: /notesdata (name of your /notesdata directory) /usr/lpp/lotus/notes/latest/os390 /usr/lpp/lotus/notes/latest/os390/res/C The LIBPATH statement must include the Domino product executable directory: /usr/lpp/lotus/notes/latest/os390 6. The GWAPI connector statements must be in the order specified in Chapter 2, “Configuring the Domino for IBM HTTP Server” on page 5. 7. The user ID specified in the Protection directive must match the user ID used by the Domino server. © Copyright IBM Corp. 2000 175 8. The connector plug-in ServerInit statement must point to the correct /notesdata directory for the Domino server. 9. The PATH statement in the httpd.envvars file must include the correct /notesdata directory. 10.Make sure that you have defined the correct port. Make certain that no other HTTP servers are using that port, and that the SSLPort matches the -sslport xx portion of the connector plug-in ServerInit statement. 11.Check that the initialization option string on the ServerInit directive (everything following the domihttp:ServerInit part) is enclosed in double quotes. 12.Check that the required security definitions for BPX.SERVER, BPX.SRV.xxxx, and optional LNOTES segments are in place. The Domino user ID must be connected the the IMWEB (IBM HTTP Server) group, and the IBM HTTP Server must be connected to the LOTUSGRP RACF parameters for Domino and DOMCON for OS/390. 176 Domino for S/390 and Web Server Integration Appendix D. RACF security charts These charts contain the RACF commands necessary to grant permission to required resources for the Web connector and Domino. Resource Profiles rdefine facility irr.rusermap uacc(none) rdefine facility bpx.server uacc(none) permit irr.usermap class(facility) permit bpx.server class(facility) id(W EBSERV) acc(read) access(read) id(W EBSERV) rdefine facility bpx.fileattr.progctl rdefine surrogat bpx.srv.domino uacc(none) uacc(none) permit bpx.fileattr.progctl class(facility) id(sysprog) access(read) setropts raclist(facility) refresh permit bpx.srv.domino class(surrogat) id(W EBSRV) acc(read) rlist surrogat bpx.srv.domino authuser rlist facility bpx.server authuser Figure 65. RACF parameters for IBM HTTP Server User Profiles connect DOMINO group(IMWEB) connect WEBSRV group(LOTUSGRP) To define LNOTES segment adduser newuser lnotes(sname('Domino_shortname') * listuser mewuser lnotes *Case-sensitive - must be exact match To remove LNOTES segment: altuser newuser lnotes(nosname) altuser newuser nolnotes Figure 66. RACF parameters for Domino for IBM HTTP Server connector © Copyright IBM Corp. 2000 177 LOTUSGRP ADDGROUP LOTUSGRP OMVS(GID(100)) DOMINO* DOMCON ADDUSER DOMCON DFLTGRP(LOTUSGRP) OMVS(UID(0) HOME(/'u/domcon') PROGRAM('bin/sh') FACILITY Class PERMIT BPX.DAEMON CLASS(FACILITY) ACCESS(READ) ID(DOMCON)) PERMIT BPX.STOR.SWAP CLASS(FACILITY) ACCESS(READ) ID(DOMINO)) PERMIT BPX.SMF CLASS(FACILITY) ACCESS(READ) ID(DOMINO)) if using domoe: PERMIT BPX.SRV.* CLASS(FACILITY) ACCESS(READ) ID(DOMINO) PERMIT BPX.SERVER CLASS(FACILITY) ACCESS(UPDATE) ID(domadmin) *uid MUST BE NON-ZERO *For each Domino Server: ADDUSER DOMINO DFLTGRP(LOTUSGRP) OMVS(UID(1001) HOME('/u/domino') PROGRAM('bin/sh') *if TSO, password(xxxx) name('Domino Server') tso() Program Protection RALTER PROGRAM * ADDMEM('DOMINO.LPALIB' /volume/NOPADCHK) UACC(READ) RALTER PROGRAM * ADDMEM('DOMINO.LPAPDSE' /volume/NOPADCHK) UACC(READ) RALTER PROGRAM * ADDMEM('DOMCON.LOADLIB)' /volume/NOPADCHK) UACC(READ) SETROPTS WHEN(PROGRAM) SETROPTS RACLIST(FACILITY) REFRESH STARTED Class RDEFINE STARTED(DOMIN*.**) STDATA(USER(DOMCON)) SETROPTS RACLIST(STARTED) REFRESH DATASET Rules *Do for DOMCON + Domino Server ID's Addsd 'DOMCON.LOADLIB' UACC(NONE) PERMIT 'DOMCON.LOADLIB' ACCESS(EXECUTE) ID(DOMINO) Figure 67. RACF parameters for Domino and DOMCON for OS/390 178 Domino for S/390 and Web Server Integration Appendix E. Special notices This publication is intended to help Lotus Domino Administrators, Webmasters and/or systems programmers to install, customize and use the Lotus Domino for IBM HTTP Server connector. The information in this publication is not intended as the specification of any programming interfaces that are provided by Lotus Domino or the IBM HTTP Server. See the PUBLICATIONS section of the IBM Programming Announcement for Lotus Domino and IBM HTTP Server for more information about what publications are considered to be product documentation. References in this publication to IBM products, programs or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM product, program, or service is not intended to state or imply that only IBM's product, program, or service may be used. Any functionally equivalent program that does not infringe any of IBM's intellectual property rights may be used instead of the IBM product, program or service. Information in this book was developed in conjunction with use of the equipment specified, and is limited in application to those specific hardware and software products and levels. IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to the IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785. Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact IBM Corporation, Dept. 600A, Mail Drop 1329, Somers, NY 10589 USA. Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee. The information contained in this document has not been submitted to any formal IBM test and is distributed AS IS. The information about non-IBM ("vendor") products in this manual has been supplied by the vendor and IBM assumes no responsibility for its accuracy or completeness. The use of this information or the implementation of any of these techniques is a customer responsibility and depends on the customer's ability to evaluate and integrate © Copyright IBM Corp. 2000 179 them into the customer's operational environment. While each item may have been reviewed by IBM for accuracy in a specific situation, there is no guarantee that the same or similar results will be obtained elsewhere. Customers attempting to adapt these techniques to their own environments do so at their own risk. Any pointers in this publication to external Web sites are provided for convenience only and do not in any manner serve as an endorsement of these Web sites. Any performance data contained in this document was determined in a controlled environment, and therefore, the results that may be obtained in other operating environments may vary significantly. Users of this document should verify the applicable data for their specific environment. Reference to PTF numbers that have not been released through the normal distribution process does not imply general availability. The purpose of including these reference numbers is to alert IBM customers to specific information relative to the implementation of the PTF when it becomes available to each customer according to the normal IBM PTF distribution process. The following terms are trademarks of the International Business Machines Corporation in the United States and/or other countries: IBM OS/390 S/390 WebSphere Lotus Notes Notes Language Environment RACF SP Lotus Domino The following terms are trademarks of other companies: Tivoli, Manage. Anything. Anywhere.,The Power To Manage., Anything. Anywhere.,TME, NetView, Cross-Site, Tivoli Ready, Tivoli Certified, Planet Tivoli, and Tivoli Enterprise are trademarks or registered trademarks of Tivoli Systems Inc., an IBM company, in the United States, other countries, or both. In Denmark, Tivoli is a trademark licensed from Kjøbenhavns Sommer - Tivoli A/S. C-bus is a trademark of Corollary, Inc. in the United States and/or other countries. 180 Domino for S/390 and Web Server Integration Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and/or other countries. Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States and/or other countries. PC Direct is a trademark of Ziff Communications Company in the United States and/or other countries and is used by IBM Corporation under license. ActionMedia, LANDesk, MMX, Pentium and ProShare are trademarks of Intel Corporation in the United States and/or other countries. UNIX is a registered trademark in the United States and other countries licensed exclusively through The Open Group. SET, SET Secure Electronic Transaction, and the SET Logo are trademarks owned by SET Secure Electronic Transaction LLC. Other company, product, and service names may be trademarks or service marks of others. Special notices 181 182 Domino for S/390 and Web Server Integration Appendix F. Related publications The publications listed in this section are considered particularly suitable for a more detailed discussion of the topics covered in this redbook. F.1 IBM Redbooks For information on ordering these ITSO publications see “How to Get ITSO Redbooks” on page 187. • Lotus Notes and Domino R5 Security Infrastructure Revealed, SG24-5341 • Lotus Domino for S/390 Release 5: Installation, Customization and Administration, SG24-2083 • OS/390 e-business Infrastructure: IBM HTTP Server 5.1- Customization and Usage, SG24-5603 • Lotus Domino for S/390 Rlease 5: Problem Determination Guide, SG24-5599 • Debugging UNIX System Services, Lotus Domino, Novell Network Services, and Other Applications on OS/390, SG24-5613 F.2 IBM Redbooks collections Redbooks are also available on the following CD-ROMs. Click the CD-ROMs button at http://www.redbooks.ibm.com/ for information about all the CD-ROMs offered, updates and formats. CD-ROM Title System/390 Redbooks Collection Networking and Systems Management Redbooks Collection Transaction Processing and Data Management Redbooks Collection Lotus Redbooks Collection Tivoli Redbooks Collection AS/400 Redbooks Collection Netfinity Hardware and Software Redbooks Collection RS/6000 Redbooks Collection (BkMgr) RS/6000 Redbooks Collection (PDF Format) Application Development Redbooks Collection IBM Enterprise Storage and Systems Management Solutions © Copyright IBM Corp. 2000 Collection Kit Number SK2T-2177 SK2T-6022 SK2T-8038 SK2T-8039 SK2T-8044 SK2T-2849 SK2T-8046 SK2T-8040 SK2T-8043 SK2T-8037 SK3T-3694 183 F.3 Other resources These publications are also relevant as further information sources: • OS/390 Planning for Installation, GC28-1726 • OS/390 UNIX System Services Planning, SC28-1890 • IBM HTTP Server for OS/390 Release 7, Planning, Installing, and Using, Version 5.1, SC31-8690 • Program Directory for OS/390 V2R7.0 , GI10-4001 • RACF Command Language Reference, SC23-3731 • RACF Messages and Codes, SC23-3730 • 3990/9390 Planning, Installation, and Storage Administration Guide, GA32-0100 F.4 Referenced Web sites These Web sites are also relevant as further information sources: • IBM site for Lotus Domino for S/390: http://www.s390.ibm.com/products/domino • IBM home page: http://www.ibm.com • Lotus home page: http://www.lotus.com F.5 Lotus documentation These books are shipped with the Lotus Domino for S/390 Release 5 server code CD-ROM: • Setting Up the Domino for HTTP Connector • Lotus Domino for S/390 Install Guide for Servers (part number AB0999) • Lotus Domino for S/390 R5 Release Notes (part number AA0814) • R5 Domino Administration Doc Pack • Administering the Domino System: Volume 1 & 2 • Moving to Notes and Domino Release 5 • Setting up a Domino Server 184 Domino for S/390 and Web Server Integration • Configuring the Domino Network • Administering Domino Clusters • Managing Domino Databases • Domino R5 Administration Help (online guide) Related publications 185 186 Domino for S/390 and Web Server Integration How to Get ITSO Redbooks This section explains how both customers and IBM employees can find out about ITSO redbooks, redpieces, and CD-ROMs. A form for ordering books and CD-ROMs by fax or e-mail is also provided. • Redbooks Web Site http://www.redbooks.ibm.com/ Search for, view, download, or order hardcopy/CD-ROM redbooks from the redbooks Web site. Also read redpieces and download additional materials (code samples or diskette/CD-ROM images) from this redbooks site. Redpieces are redbooks in progress; not all redbooks become redpieces and sometimes just a few chapters will be published this way. The intent is to get the information out much quicker than the formal publishing process allows. • E-mail Orders Send orders by e-mail including information from the redbooks fax order form to: In United States Outside North America e-mail address usib6fpl@ibmmail.com Contact information is in the “How to Order” section at this site: http://www.elink.ibmlink.ibm.com/pbl/pbl/ • Telephone Orders United States (toll free) Canada (toll free) Outside North America 1-800-879-2755 1-800-IBM-4YOU Country coordinator phone number is in the “How to Order” section at this site: http://www.elink.ibmlink.ibm.com/pbl/pbl/ • Fax Orders United States (toll free) Canada Outside North America 1-800-445-9269 1-403-267-4455 Fax phone number is in the “How to Order” section at this site: http://www.elink.ibmlink.ibm.com/pbl/pbl/ This information was current at the time of publication, but is continually subject to change. The latest information may be found at the redbooks Web site. IBM Intranet for Employees IBM employees may register for information on workshops, residencies, and redbooks by accessing the IBM Intranet Web site at http://w3.itso.ibm.com/ and clicking the ITSO Mailing List button. Look in the Materials repository for workshops, presentations, papers, and Web pages developed and written by the ITSO technical professionals; click the Additional Materials button. Employees may access MyNews at http://w3.ibm.com/ for redbook, residency, and workshop announcements. © Copyright IBM Corp. 2000 187 IBM Redbook Fax Order Form Please send me the following: Title Order Number First name Quantity Last name Company Address City Postal code Country Telephone number Telefax number VAT number Card issued to Signature Invoice to customer number Credit card number Credit card expiration date We accept American Express, Diners, Eurocard, Master Card, and Visa. Payment by credit card not available in all countries. Signature mandatory for credit card payment. 188 Domino for S/390 and Web Server Integration Abbreviations and acronyms ACL Access Control List HTTP APF Authorized Program Facility Hypertext Transfer Protocol IBM API Application Programming Interface International Business Machines Corporation ICM ASCII American Standard Code for Information Interchange Internet Cluster Manager IIOP Internet Inter-Orb Protocol ASID Address Space ID IMAP CA Certificate Authority Internet Message Access Protocol IPC CGI Common Gateway Interface Inter-Process Communication CORBA Common Objects Request Broker Architecture IPCS Inter-Process Communication Services IPL Direct Access Storage Device Initial Program Load DASD ISV DECS Domino Enterprise Connection Services Independent Software Vendor (now called a Solution Developer) ITSO DGW Domino Go Webserver (predecessor of the IBM HTTP Server) International Technical Support Organization JDBC Java Data Base Connection JDK Java Development Kit JES Job Entry Subsystem DLL Dynamic Link Library DOMCON Domino Console Interface Package DSAPI Domino Web Server API JSP Java Server Pages JVM Java Virtual Machine EJB Enterprise Java Beans LDAP FRCA Fast Response Cache Accelerator Lightweight Directory Access Protocol LE Language Environment FTP File Transfer Protocol LPA GWAPI Go Webserver API (OS/390) Link Pack Area HFS Hierarchical File System LPAR Logical Partition (S/390 Hardware Feature) HTML Hypertext Markup Language MVS Old name for OS/390 NNTP Network News Transfer Protocol © Copyright IBM Corp. 2000 189 OEDIT OpenEdition Editor OMVS OpenEdition MVS, old name for OS/390 UNIX System Services OpenEdition Old name for UNIX System Services ORB Object Request Broker PID Process ID PPID Parent Process ID PDS Partitioned Data Set PDS/E Partitioned Data Set/Extended POP3 Post Office Protocol 3 RACF Resource Access Control Facility PTF Program Temporary Fix SD Solution Developer (formerly ISV) SSL Secure Socket Layer TSO Time Sharing Option URL Uniform Resource Locator USS UNIX System Services VIPA Virtual IP Addressing WAS WebSphere Application Server WebAS WebSphere Application Server WLM Workload Manager 190 Domino for S/390 and Web Server Integration Index Symbols .profile file 24 _DOMIHTTP_DEBUG 155 A access control - Web server admin 77 Access Control List 84 access-control checking 13 AccessLog 157 ACL 84 administration access control 77 Administration Client 54 administration client 54 administration facility 68 administrator user ID 25 Administrator client 32, 55 Administrator ID 31, 32 agents 16 ALOCPROD 17, 20 APPLENV 130 Authentication 79 Basic 79 SSL client certificate 80 authentication 2, 7 availability 5 B Bind specific 128 BPX.DAEMON 41 BPX.FILEATTR.PROGCTL 9, 172, 175 BPX.SERVER 10, 41 BPX.SMF 19 BPX.SRV.DOMINO1 10 BPX.STOR.SWAP 19 BPX.SUPERUSER 18 Browser requirements 65 C C/C++ 16 caching 17 Calendar Connector 27 CD-ROM 16 Certificate © Copyright IBM Corp. 2000 Certificate request 103 Client Certificates 111 Common Name 100 Distinguished Name 100 Keysize 100 Level 100 Operational server certificate 98 Self signed 98 Certificate authority 94 Certificates 80 Certification authority 97 Certifier ID 25 CLASSPATH 24 Client certificates 111 Common Name 100, 113 Configuration 5 Configuration merge utility 144 Cookies 80 Credentials 81 Cryptographic 80 D DASD fast-write function 16 DASD space requirements 17 DECS 29 Distinguished Name 100 DNS entry 129 domain 25 DOMCON 48 3.0 package 48 Starting the Domino server 50 Startup parameters 50 Stopping the Domino server 52 DOMIHTTP-001 169 0x0102 169 0x175b 170 0x1902 170 0xff99 171 0xff9a 171 DOMIHTTP-o01 0x0107 169 Domino 54 Certificate Authority 97 domain 25 Domino administrator client 32, 55 Domino Application Server 23 191 Domino CA server 114 Domino Certificate Authority 105, 111 Setup 111 Domino Console Interface (DOMCON) 45 Domino Enterprise Connection Services 29 Domino Enterprise Server 23 Domino for IBM HTTP Server 1 Authentication 79 Configuration 5 Configuration merge utility 144 Configuration scenarios 127 Migration 143 Operation 45 Domino Internet Cluster Manager 145 Domino Mail Server 23 Domino Partitioned Servers 23 Domino server Abnormal terminations 58 Authentication 79 first 25 First in Domain 15 Install program 22 Installation 15 Administrator ID 31 LPA modules 33 Network and Communication Settings 31 Server Audience 29 Installation parameters 22 Monitoring 56 Operation 54 SSL setup 125 Starting 45 Stopping 52 TAR file 21 Domino Servlet Manager 145 Domino Session Authentication 80 Domino shortname 90 Domino UNIX group 8 Domino Web server API 144 Domino Web server API (DSAPI) 2 domino_global_env 47 DOMINS 50 DSAPI 144 E Electronic certificate 80 Electronic certificates 97 Enterprise Connection Services 29 192 Domino for S/390 and Web Server Integration environment variables 24 Environment variable _DOMIHTTP_DEBUG 155 LIBPATH 11 PATH 11 Environment variables 98 environment variables 5 Error 404 166 Error 500 161, 172 ErrorLog 157 Event Manager 27 extattr +p 9, 172 command 9 F failures 18 fast-write 16 files 46 First in Domain 15 First Server in Domain 24 Configuration 26 flag p 9 FRCA cache 1 Free Time 27 FTP 32 FTP example 20 G Getting started 15 GWAPI 5, 11, 45 plug-in module 8 GWAPI program 1 H Hardware requirements 16 help quick 26 HFS 8, 16 HTTP hyperlinks 2 HTTP basic authentication 79 httpd.conf 11, 38 httpd.envvars 38 https 80 httpsetup 26 J I Java Development Kit 16 Java for OS/390 16 JavaScript 66 IBM HTTP Server 1 Administration 65 Authentication 79 Configuration file 11 Configuration files 37 Display configuration information 64 Installation 35 Directory structure 36 Logging 156 Persistent connections 64 Secure server setup 97 Security environment 41 SSL configuration 108 Started procedure 43 Starting 63 Stopping 63 User ID 7 -vv trace 158 IBM WebSphere Application Server 145 ICH408I 171 ICM 145 IIOP 28 IKEYMAN 97 IMAP 28 IMW_Admin protection 77 IMW0003E Configuration not loaded 157 IMW0240E Access denied - unauthorized program loaded 161 IMW0241E Access denied - surrogate user setup error 161 IMW0243E Configuration file /etc/httpd.conf not found or in error 157 IMWEBSRV 63 Installation Guide Domino for System 390 15 Installation parameters 22 Internet Message Access Protocol 28 introduction page 69 IPC Cleanup 129 Resources 129 IPC resources cleaning up 46 IPCS 54 K Key ring 97 Key size 113 KeyFile 108 L Last minute comments 15 LDAP 29 LIBPATH 11, 24, 98 Lightweight Directory Access Protocol 29 LNOTES 90, 167 LocalDomainServers 25 Lotus Domino server Installation 15 Lotus Notes/Domino shortname 90 LPA 33 M mapping 7 MDFYBPXP 22 MDFYPROG 33 message queues 46 Microsoft Internet Explorer 66 migration 21 MODIFY command 65 mount statements 22 N name lookup 7 NAMES.NSF 25 Netscape Communicator 26 Netscape Navigator 65 Network and Communication Settings 31 Network News Transfer Protocol 29 NLSPATH 98 NNTP 29 NoAmbiguousWebNames 7, 171, 175 Normalmode 108 normal-mode 12, 35 notes.ini 7 editing 7 NoAmbiguousWebNames 7 193 notes.rc 46 Notesdata 23 NRPC protocol 128 O oeditascii 7 Operating Domino for IBM HTTP Server 45 OS/390 authentication 84, 88 OW35502 152, 166 OW39716 152, 166 P p flag 9 Parm field 43 Pass rule 12 PATH 11, 24, 98 permissions 5 PersistTimeout 64 Person entry 117 Pickup ID 105 platcreds allow 133 POP3 28 Port 80 128 Post Office Protocol 3 28 private key 80 processes cleaning up 46 program-control 8, 41 Protection directive 76 PTFs 152 PUBLIC 41 public-key cryptographic 80 PUBNAMES.NTF 25 PUTINLPA 33 Q quick help 26 R RACF 9, 18 Digital certificate support 91 LNOTES segment 90 sample commands 42 STARTED 44 surrogate authority 49 RACF profile 194 Domino for S/390 and Web Server Integration SURROGAT class 10 Release Notes Domino for System 390 15 rlogin 47 Root certificate 98 S scalable 2 Schedule Manager 27 SCLBDLL 16 SDSF 48 Secure Web server Setup 97 security exposures 7 Self-signed certificate 98 semaphores 46 server instances cannot start two 46 shutdown 45 startup 45 server ID 25 server.id 7 ServerInit 13 platcreds allow 133 ServerKeyFilename 7 Session authentication 81 shared memory segments, 46 Shortname 90 shutdown 45 SMP/E 35 Software requirements 16 SSL 12 SSL client certificate authentication 80 SSLClientAuth 126 SSLMode 108 SSLPort 108 sslport 13 Standard Domino authentication 84 startup 45 stash file 98 su command 18 superuser 8, 46 SURROGAT 10 SYS1.PARMLIB 16 BPXPRMxx 22 COMMNDxx 33 LPALSTxx 33 PROGxx 33 T tar file 21 TCP/IP 16, 164 VIPA 2 telnet 47 Tracing 155 Troubleshooting 151 Trusted signer 94 TSO console facility 48 WEBADM 77 WEBSRV 7 WLM Application Environment 129 X X.509 certificates 80 X.509 client certificates 117 U UID=0 46 UNIX shell commands 8 user ID 25 V variables environment 5 viascii 7 VIPA 2 W Web administrator client interface 55 Web browser 24 Web connector 1 Configuration 5 Operating 45 Web server Administration ID 41 API filters 144 Configuration files 37 Configuration for SSL 108 Installation 35 Directory structure 36 Key database 103 Scalable 129 Secure server setup 97 Secure setup 97 Started procedure 43 PARM field 43 -vv trace 158 Web server admin GUI 75 Web server administration facility 68 195 196 Domino for S/390 and Web Server Integration IBM Redbooks review Your feedback is valued by the Redbook authors. In particular we are interested in situations where a Redbook "made the difference" in a task or problem you encountered. Using one of the following methods, please review the Redbook, addressing value, subject matter, structure, depth and quality as appropriate. • Use the online Contact us review redbook form found at http://www.redbooks.ibm.com/ • Fax this form to: USA International Access Code + 1 914 432 8264 • Send your comments in an Internet note to redbook@us.ibm.com Document Number Redbook Title SG24-5437-00 Domino for S/390 and Web Server Integration Review What other subjects would you like to see IBM Redbooks address? Please rate your overall satisfaction: O Very Good Please identify yourself as belonging to one of the following groups: O Customer O Business Partner O IBM, Lotus or Tivoli Employee O None of the above Your email address: The data you provide here may be used to provide you with information from IBM or our business partners about our products, services or activities. O Please do not use the information collected here for future marketing or promotional contacts or other communications beyond the scope of this transaction. Questions about IBM’s privacy policy? The following link explains how we protect your personal information. http://www.ibm.com/privacy/yourprivacy/ © Copyright IBM Corp. 2000 O Good O Average O Poor O Solution Developer 197 SG24-5437-00 ® Domino for S/390 and Web Server Integration SG24-5437-00 Printed in the U.S.A.