Starting TLS failed
LDAP: couldn't connect to LDAP server
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
public:docs:start [2016-10-05 09:24:22] – imre muutis 20161005 imreoolberg | public:docs:start [2024-09-06 08:26:14] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | + | ||
- | RoksNet utilizes the X-Road components for secure data transfer. The illustration below shows the main components and interfaces of the RoksNet. The components that are not part of the RoksNet core are shown on grey background. | + | |
- | + | ||
- | ==== Architecture ==== | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | ==== Setting up a security server ==== | + | |
- | + | ||
- | === System requirements === | + | |
- | + | ||
- | ^ Requirements | + | |
- | | Ubuntu 14.04 64-bit, 2 GB RAM, 3 GB free disk space | Minimum system requirements | + | |
- | | http:// | + | |
- | | http:// | + | |
- | | TCP 5500 | Port inbound & outbound for message exchange between security servers | | + | |
- | | TCP 5577 | Port inbound & outbound for querying OCSP responses between security servers | | + | |
- | | TCP 4001 | Port outbound for communication with the central server | | + | |
- | | TCP 80 | Port outbound for downloading global configuration | | + | |
- | | TCP 443 | Port outbound for OCSP and TSA services | | + | |
- | | TCP 4000 | Port inbound for access to user interface (local network) | | + | |
- | | TCP 80, 443 | Ports inbound as information system access points (local network or external via https) | | + | |
- | + | ||
- | REQUIREMENTS FOR THE SECURITY SERVER | + | |
- | + | ||
- | Minimum recommended hardware parameters: | + | |
- | * the server’s hardware (motherboard, | + | |
- | * a 64-bit dual-core Intel, AMD or compatible CPU; AES instruction set support is highly recommended; | + | |
- | * 2 GB RAM; | + | |
- | * a 100 Mbps network interface card; | + | |
- | * if necessary, interfaces for the use of hardware tokens. | + | |
- | + | ||
- | Requirements to software and settings: | + | |
- | * an installed and configured Ubuntu 14.04 LTS x86-64 operating system (VMs are supported as long as they support Ubuntu 14.04 LTS); | + | |
- | * The enabling of auxiliary services which are necessary for the functioning and management of the operating system (such as DNS, NTP, and SSH) stay outside the scope of this guide. | + | |
- | + | ||
- | === Installing the Security Server === | + | |
- | + | ||
- | PREPARING THE OS | + | |
- | + | ||
- | 1. Add system user whom all roles in the user interface are granted to: | + | |
- | < | + | |
- | 2. Set operating system locale. Add the following line to / | + | |
- | + | ||
- | INSTALLATION | + | |
- | + | ||
- | 3. Add the address of the RoksNet package repository and the nginx repository to to / | + | |
- | < | + | |
- | deb http:// | + | |
- | deb http:// | + | |
- | + | ||
- | 4. Add RoksNet' | + | |
- | < | + | |
- | < | + | |
- | < | + | |
- | + | ||
- | 5. Install the security server software: | + | |
- | < | + | |
- | < | + | |
- | + | ||
- | 6. During the installation you will be asked to specify the username (added at step 1.) that will be granted the rights to perform all activities in the user interface. | + | |
- | + | ||
- | 7. The other questions can be answered with their default values as they are detected from the OS. | + | |
- | + | ||
- | POST INSTALLATION CHECKS | + | |
- | + | ||
- | 8. Check if all the processes started. The following services should be running. | + | |
- | < | + | |
- | xroad-jetty start/ | + | |
- | xroad-confclient start/ | + | |
- | xroad-signer start/ | + | |
- | xroad-proxy start/ | + | |
- | </ | + | |
- | + | ||
- | 9. Ensure that the security server user interface at https:// | + | |
- | + | ||
- | === Configuring the Security Server === | + | |
- | + | ||
- | 1. To perform the initial configuration, | + | |
- | + | ||
- | 2. The system will ask for a global configuration anchor file. RoksNet' | + | |
- | < | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 3. If the configuration is successfully downloaded, the system asks for the following information: | + | |
- | + | ||
- | * The security server owner’s member class (COM for private sector business, GOV for governmental organization and NGO for non-profit organization) | + | |
- | * The security server owner’s member code (this should be your organization' | + | |
- | * Security server code (free form, security server code should be unique per member). | + | |
- | * Software token’s PIN (free form - the PIN will be used to protect the keys stored in the software token. The PIN must be stored in a secure place, because it will be no longer possible to use or recover the private keys in the token once the PIN has been lost) | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 4. The system will prompt a warning. This is fine, as we'll register the member status later. | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 5. Enter softtoken PIN in the Keys and Certificates view (chosen in step 3.) | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 6. Add a TSA in System Parameters view | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 7. Generate keys and certificate requests in the Keys and Certificates view | + | |
- | + | ||
- | Security servers use 2 types of certificates | + | |
- | * AUTH certificates for authentication between security servers when initiating a secure TLS channel. AUTH certificates are used 1 per security server. | + | |
- | * SIGN certificates for signing messages. SIGN certificates are used 1 per MEMBER (i.e. organization). | + | |
- | + | ||
- | Generate 2 keys by selecting the SoftToken-0 and press GENERATE KEY. Give the key a label and press OK. Your keys should now look similar to this: | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | Next, generate a CSR for a SIGN certificate by choosing a key and selecting GENERATE CSR. | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | Then generate a CSR for an AUTH certificate. | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | Send the downloaded CSR-s to us at support@roksnet.com with the following details: | + | |
- | + | ||
- | * Member name | + | |
- | * Member code | + | |
- | * Member class | + | |
- | * Security server code | + | |
- | + | ||
- | We will use the CSR-s to issue you certificates. | + | |
- | + | ||
- | Once you have received the certificates you should be able to import them in the "Keys and Certificates" | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | Once we have accepted the registration request in the central server, the OCSP response and status of the AUTH certificate will change to "good, registered" | + | |
- | + | ||
- | The next step would be registering a subsystem. Select "ADD CLIENT" | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | Select " | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | Once we have accepted the registration request in the central server, you'll be ready to consume or provide services on RoksNet' | + | |
- | + | ||
- | + | ||
- | ==== Setting up RoksNet Portal ==== | + | |
- | + | ||
- | MISP2 (Mini Information System Portal 2) is a universal client application that's easy to set up and makes it easy to consume RoksNet data services without the need to develop one's own information system. It's also a good developers tool, as it makes testing your services easy. | + | |
- | + | ||
- | === System requirements === | + | |
- | + | ||
- | ^ Requirements | + | |
- | | Ubuntu 14.04 64-bit, 4 GB RAM | Recommended system requirements | + | |
- | | http:// | + | |
- | | http:// | + | |
- | | TCP 80, 443 outbound | For communicating with the security server (HTTPS if over public internet | | + | |
- | | TCP 443 inbound | For access to the web interface | | + | |
- | + | ||
- | Requirements to software and settings: | + | |
- | + | ||
- | * an installed and configured Ubuntu 14.04 LTS x86-64 operating system (VMs are supported as long as they support Ubuntu 14.04 LTS); | + | |
- | * The enabling of auxiliary services which are necessary for the functioning and management of the operating system (such as DNS, NTP, and SSH) stay outside the scope of this guide. | + | |
- | + | ||
- | === Installing MISP2 === | + | |
- | + | ||
- | 1. All activities during installation are performed as root user, so | + | |
- | + | ||
- | < | + | |
- | + | ||
- | 2. Configure MISP2 and JDK-8 repositories. To do that, add the following lines to / | + | |
- | + | ||
- | < | + | |
- | deb http:// | + | |
- | + | ||
- | 3. Download signing key for JDK-8 | + | |
- | + | ||
- | < | + | |
- | + | ||
- | 4. Add RoksNet' | + | |
- | + | ||
- | < | + | |
- | + | ||
- | 5. Update package lists | + | |
- | + | ||
- | < | + | |
- | + | ||
- | 6. Install postgreSQL | + | |
- | + | ||
- | < | + | |
- | + | ||
- | 7. Edit the file / | + | |
- | + | ||
- | < | + | |
- | local | + | |
- | </ | + | |
- | + | ||
- | 8. Restart PostgreSQL | + | |
- | + | ||
- | < | + | |
- | + | ||
- | 9. Install MISP2 database package | + | |
- | + | ||
- | < | + | |
- | + | ||
- | For testing purposes questions prompted during installation can be answered with default values. | + | |
- | + | ||
- | 10. Install Java JDK 8 | + | |
- | + | ||
- | < | + | |
- | + | ||
- | 11. Add JAVA_HOME variable | + | |
- | + | ||
- | < | + | |
- | + | ||
- | 12. Install MISP2 application | + | |
- | + | ||
- | < | + | |
- | + | ||
- | Quite a few questions will be asked during this installation. | + | |
- | + | ||
- | * Do you want to update SK certificates - answer " | + | |
- | * Do you want to configure as international version - answer " | + | |
- | * Please provide database host IP to be used - default answer | + | |
- | * Please provide database port to be used - default answer | + | |
- | * Please provide database name to be used - default answer | + | |
- | * Please provide username to be communicating with database - default answer | + | |
- | * Please enter username password - enter password chosen at step 9 | + | |
- | * Do you want to configure signing and encrypting of Estonian ID-card certificates - answer " | + | |
- | * Do you want to enable authentication with Mobile-ID - answer " | + | |
- | * Please provide SMTP host address - answer default, won't be using for testing purposes | + | |
- | * Please provide server email address - answer default | + | |
- | * Please provide x-road v6 instances (comma separated list) - type " | + | |
- | * Please provide x-road v6 member classes (comma separated list) - answer default | + | |
- | * Do you want to add new administrator account - answer " | + | |
- | * Do you want to enable HTTPS connection between Misp2 application and security server? - answer " | + | |
- | + | ||
- | 13. Edit the file / | + | |
- | + | ||
- | < | + | |
- | # | + | |
- | auth.password=true | + | |
- | auth.IDCard=false | + | |
- | auth.IDCard.OCSPCheck=false | + | |
- | auth.mobileID=false | + | |
- | auth.externals=false | + | |
- | auth.sslid=false | + | |
- | auth.certificate=false | + | |
- | </ | + | |
- | + | ||
- | This enables password authentication. Browser certificates (auth.certificate) would also be fine for testing purposes, but passwords are easier to use. | + | |
- | + | ||
- | If you would like to, you could also change the country code. | + | |
- | + | ||
- | < | + | |
- | #If no suitable countries are defined, then uses system default locale country | + | |
- | countries = [ISO code of your country, e.g. " | + | |
- | </ | + | |
- | + | ||
- | 14. Edit / | + | |
- | + | ||
- | < | + | |
- | < | + | |
- | Order deny, | + | |
- | Deny from all | + | |
- | Allow from 127.0.0.1 192.168.1.90 | + | |
- | </ | + | |
- | </ | + | |
- | + | ||
- | 15. Restart apache2. | + | |
- | + | ||
- | < | + | |
- | + | ||
- | === Configuring MISP2 from the web interface === | + | |
- | + | ||
- | 1. You should now be able to log into MISP2' | + | |
- | + | ||
- | 2. When logged in, under Portal management, select "Add new" | + | |
- | + | ||
- | 3. Fill out the forms with the following information: | + | |
- | + | ||
- | * Portal name (EN) - free form | + | |
- | * Portal short name - system name, free form | + | |
- | * Portal type - Organizations portal | + | |
- | * Organization name (EN) - Name of your organization | + | |
- | * Organization code (x-road member code) - Member code (must match member code in security server) | + | |
- | * X-road protocol version - 4.0 | + | |
- | * X-road instance - roksnet-dev | + | |
- | * X-road member class - Your member class (must match member class in security server) | + | |
- | * X-road subsystem code - Your subsystem code (must match subsystem code in security server) | + | |
- | * Security host - http:// | + | |
- | * Services sending address - http:// | + | |
- | * Debug mode - off | + | |
- | * Send audit log to security server - unchecked | + | |
- | * Use topics - unchecked | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | After filling out the forms, hit "Save portal configuration" | + | |
- | + | ||
- | 4. Select "Add new manager" | + | |
- | + | ||
- | 5. Fill out the forms and hit "Add new person as manager" | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 6. Choose " | + | |
- | + | ||
- | 7. Log in with the user you just created at https:// | + | |
- | + | ||
- | The username must be enter as [countrycode+serialnumber]. | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 8. Select "All producers" | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 9. Select a producer, hit Refresh services -> From security server (allowed). | + | |
- | + | ||
- | This will send a metaquery from MISP2 to your security server, which will proxy it the the producer' | + | |
- | + | ||
- | 10. Check all services and hit Refresh XForms descriptions of selected services -> Generate from security server. | + | |
- | + | ||
- | This will generate XForms based on the services WSDL-s. | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 11. Hit the play button on a service to test it. | + | |
- | + | ||
- | You're now able to consume RoksNet data services via MISP2 :) | + | |
- | + | ||
- | + | ||
- | ==== Data service development ==== | + | |
- | + | ||
- | === Developer documentation === | + | |
- | + | ||
- | RoksNet data services are based on SOAP. Information about X-road specific requirements are in the following documents: | + | |
- | * Message Protocol v4.0 - http:// | + | |
- | * Service Metadata Protocol - http:// | + | |
- | + | ||
- | + | ||
- | === Example SOAP server and client === | + | |
- | Source code of example: {{ : | + | |
- | + | ||
- | The demo application is written in Python. Installation instructions are in included in the package (see INSTALL.txt) | + | |
- | + | ||
- | The example SOAP server accepts input messages in both X-road protocol 3.1 and 4.0 and formats response message according | + | |
- | to the same protocol which was used by the client. | + | |
- | The application contains source code of Population Registry, Passport database, Vehicle database, Company database and Prescription database demo services which are available in RoksNet test environment. | + | |
- | + | ||
- | To create a new SOAP server for service provider: | + | |
- | * create SOAP server instance for SOAP server (example: pyxadapter/ | + | |
- | * include service registration function and define routing for new SOAP server in pyxadapter/ | + | |
- | + | ||
- | To create a new service in the SOAP server: | + | |
- | * create service implementation function serve() (example: pyxadapter/ | + | |
- | * import and registrate service implementation module | + | |
- | * create service description WSDL (example: pyxadapter/ | + | |
- | * publish service in Security Server and grant access to clients | + | |
- | + | ||
- | To create SOAP client: | + | |
- | * create X-road client class (corresponding to a service provider) with methods corresponding to services and start calling those methods (example: pyxadapter/ | + | |
- | + | ||
- | + |