Java源码示例:org.apache.mina.filter.ssl.KeyStoreFactory

示例1
private SSLContext getSslContext() {
	SSLContext sslContext = null;
	try {
		File keyStoreFile = new File(sslKey);// 私钥
		File trustStoreFile = new File(sslCert);// 公钥
		if (keyStoreFile.exists() && trustStoreFile.exists()) {
			final KeyStoreFactory keyStoreFactory = new KeyStoreFactory();
			keyStoreFactory.setDataFile(keyStoreFile);
			if (StringUtils.isNotBlank(sslKeyPassPhrase)) {
				keyStoreFactory.setPassword(sslKeyPassPhrase);
			}

			final KeyStoreFactory trustStoreFactory = new KeyStoreFactory();
			trustStoreFactory.setDataFile(trustStoreFile);

			final SslContextFactory sslContextFactory = new SslContextFactory();
			final KeyStore keyStore = keyStoreFactory.newInstance();
			sslContextFactory.setKeyManagerFactoryKeyStore(keyStore);

			final KeyStore trustStore = trustStoreFactory.newInstance();
			sslContextFactory.setTrustManagerFactoryKeyStore(trustStore);
			sslContext = sslContextFactory.newInstance();
		}
	} catch (Exception e) {
		logger.error(e.getMessage());
	}
	return sslContext;
}
 
示例2
public static SslContextFactory createDefaultSslFactory ( final Map<String, String> properties, final boolean clientMode ) throws Exception
{
    final boolean requireSsl = isSslRequired ( properties );

    final File defaultKeyStoreFile = findDefaultKeyStore ();

    final String keyStoreFileName = get ( properties, "sslKeyStoreFile", null );
    File keyStoreFile = keyStoreFileName != null ? new File ( keyStoreFileName ) : null;

    if ( keyStoreFile == null && defaultKeyStoreFile == null && !requireSsl )
    {
        // no STATS_KEY store provided and no default key store found
        // no ssl
        return null;
    }
    if ( keyStoreFile == null && defaultKeyStoreFile != null )
    {
        // no specific key store file and default key store file exists and is readable
        logger.debug ( "Using default key store file: {}", defaultKeyStoreFile );
        keyStoreFile = defaultKeyStoreFile;
    }

    if ( keyStoreFile == null )
    {
        // no key store to use
        return null;
    }

    final String trustStoreFile = get ( properties, "sslTrustStoreFile", keyStoreFile.getAbsolutePath () );

    final String password = get ( properties, "sslPassword", null );

    final String keyStorePassword = get ( properties, "sslKeyStorePassword", password );
    final String trustStorePassword = get ( properties, "sslTrustStorePassword", keyStorePassword );
    final String keyPassword = get ( properties, "sslKeyPassword", keyStorePassword );

    if ( ( keyStorePassword == null || trustStorePassword == null || keyPassword == null ) && !requireSsl )
    {
        // no ssl
        return null;
    }

    final SslContextFactory factory = new SslContextFactory ();

    logger.debug ( "Default KeyStore: {}", KeyStore.getDefaultType () );
    logger.debug ( "Default KeyManagerFactory: {}", KeyManagerFactory.getDefaultAlgorithm () );
    logger.debug ( "Default TrustManagerFactory: {}", TrustManagerFactory.getDefaultAlgorithm () );

    final KeyStoreFactory keyStoreFactory = new KeyStoreFactory ();
    keyStoreFactory.setDataFile ( keyStoreFile );
    keyStoreFactory.setPassword ( keyStorePassword );

    final KeyStoreFactory trustStoreFactory = new KeyStoreFactory ();
    trustStoreFactory.setDataFile ( new File ( trustStoreFile ) );
    trustStoreFactory.setPassword ( trustStorePassword );

    factory.setKeyManagerFactoryKeyStore ( keyStoreFactory.newInstance () );
    factory.setTrustManagerFactoryKeyStore ( trustStoreFactory.newInstance () );

    factory.setKeyManagerFactoryKeyStorePassword ( keyPassword );

    return factory;
}