Encrypt passwords
This guide covers password encryption methods for Itential Platform versions 2023.2 and earlier.
The $ENC encryption method is deprecated and will be removed in a future release. Use HashiCorp Vault or CyberArk for new deployments and migrations.
Recommended approach
For Platform 6 and later versions, use modern secrets management:
Automatic property encryption with versioning and audit trails
Enterprise credential provider integration
Legacy $ENC encryption
Use this method only for versions 2023.2 and earlier or during migration periods.
Generate encrypted password
Example: MongoDB password encryption
Alternative: $SECRET encryption
The $SECRET syntax references secrets stored in HashiCorp Vault.
$SECRET encryption is the replacement for $ENC encryption. It provides better security and integrates with enterprise secrets management.
Secret reference format
Example:
See Manual property encryption for details.
Encrypt properties.json
The properties.json file contains sensitive credentials. Follow best practices for file permissions and encryption.
Set file permissions
Encrypt passwords
Migration from $ENC to Vault
When upgrading to Platform 6, migrate encrypted passwords to HashiCorp Vault.
Migration process
Platform 6 upgrade considerations
When upgrading to Platform 6, all $ENC encrypted secrets must be migrated to HashiCorp Vault or CyberArk. Support for $ENC will be removed in a future release.
Upgrade checklist
- Install and configure HashiCorp Vault or CyberArk
- Identify all
$ENCencrypted values in your deployment - Create corresponding secrets in your vault solution
- Update configurations to use
$SECRETsyntax - Test all adapters and integrations
- Verify authentication works correctly
- Remove
$ENCencrypted values from configuration files - Document secret locations and naming conventions
See Platform 6 Upgrade: Migration of Encrypted Secrets for detailed upgrade instructions.
Security best practices
File system security
- Set
properties.jsonto mode 0600 (user read-only) - Ensure files are owned by the Itential Platform user
- Store certificates and keys in protected directories
- Audit file permissions regularly
Password management
- Use strong, randomly generated passwords
- Rotate passwords according to your security policy
- Never commit encrypted passwords to version control
- Use vault solutions for centralized secret management
Configuration management
- Maintain separate configurations for each environment
- Use environment variables for deployment-specific values
- Document which passwords are encrypted and where
- Test password rotation procedures regularly
Troubleshooting
Encrypted password not working:
- Verify the entire
$ENCstring is copied (including the prefix) - Check for extra spaces or line breaks in the encrypted value
- Ensure the encryption was generated on the same Platform version
- Regenerate the encrypted password if corruption is suspected
Migration issues:
- Verify Vault is properly configured and accessible
- Check that secret paths and keys match configuration references
- Ensure Platform has proper permissions to read Vault secrets
- Review Platform logs for Vault connection errors
Properties.json permission errors:
- Confirm file permissions are set to 0600
- Verify file ownership is correct
- Check that the Itential service user has read access
- Review SELinux or AppArmor policies if applicable