<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>绿色记忆 &#187; JKS</title>
	<atom:link href="https://blog.gmem.cc/tag/jks/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.gmem.cc</link>
	<description></description>
	<lastBuildDate>Tue, 21 Apr 2026 10:40:56 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.14</generator>
	<item>
		<title>Spring配置：启用Jetty SSL传输的CXF</title>
		<link>https://blog.gmem.cc/spring-confg-cxf-with-ssl</link>
		<comments>https://blog.gmem.cc/spring-confg-cxf-with-ssl#comments</comments>
		<pubDate>Sat, 22 Dec 2012 10:34:51 +0000</pubDate>
		<dc:creator><![CDATA[Alex]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[CXF]]></category>
		<category><![CDATA[Jetty]]></category>
		<category><![CDATA[JKS]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[WebService]]></category>

		<guid isPermaLink="false">http://blog.gmem.cc/?p=1144</guid>
		<description><![CDATA[<p>Spring配置文件 [crayon-69e7cba3ea73c759003086/] 使用JDK的keytool密钥对 使用JDK自带的keytool命令可以生成JKS（Java KeyStore）文件，作为数字证书库使用。在配置SSL时，一般需要用到两个JKS：信任库、证书库（对应上节配置文件中的truststore、keystore）。 下面是生成证书库的示例： [crayon-69e7cba3ea747204554508/]</p>
<p>The post <a rel="nofollow" href="https://blog.gmem.cc/spring-confg-cxf-with-ssl">Spring配置：启用Jetty SSL传输的CXF</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></description>
				<content:encoded><![CDATA[<div class="wri_content_clear_both"><div class="blog_h3"><span class="graybg">Spring配置文件</span></div>
<pre class="crayon-plain-tag">&lt;beans 
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:sec="http://cxf.apache.org/configuration/security"
    xmlns:http="http://cxf.apache.org/transports/http/configuration"
    xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration"
    xmlns:cxf="http://cxf.apache.org/core"
    xmlns:jaxws="http://cxf.apache.org/jaxws"

    xsi:schemaLocation="
        http://cxf.apache.org/configuration/security http://cxf.apache.org/schemas/configuration/security.xsd
        http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
        http://cxf.apache.org/transports/http-jetty/configuration http://cxf.apache.org/schemas/configuration/http-jetty.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd "&gt;

    &lt;import resource="classpath:META-INF/cxf/cxf.xml" /&gt;
    &lt;import resource="classpath:META-INF/cxf/cxf-extension-jaxws.xml" /&gt;

    &lt;cxf:bus&gt;
        &lt;cxf:features&gt;
            &lt;cxf:logging /&gt;
        &lt;/cxf:features&gt;
    &lt;/cxf:bus&gt;
    &lt;bean id="cfg" class="sparknet.canary.core.cfg" init-method="init"&gt;
        &lt;property name="params"&gt;
            &lt;value&gt;
            &lt;![CDATA[
                http.port=5050
                https.port=5051
                https.keyManagers.keyStore.type=JKS
                https.keyManagers.keyPassword=sparknet
                https.keyManagers.keyStore.password=sparknet
                https.keyManagers.keyStore.url=#{@cfg.baseDirUrl}/work/security/key/platform.jks
                https.trustManagers.keyStore.type=JKS
                https.trustManagers.keyStore.password=sparknet
                https.trustManagers.keyStore.url=#{@cfg.baseDirUrl}/work/security/cert/trust.jks
                http.minThreads=5
                http.maxThreads=50
            ]]&gt;
            &lt;/value&gt;
        &lt;/property&gt;
    &lt;/bean&gt;
    &lt;bean name="dataTransServiceImplHttp" class="cc.gmem.demo.ws.DataTransServiceImpl" autowire="byName"&gt;
        &lt;property name="https" value="false" /&gt;
    &lt;/bean&gt;
    &lt;bean name="dataTransServiceImplHttps" class="cc.gmem.demo.ws.DataTransServiceImpl" autowire="byName"&gt;
        &lt;property name="https" value="true" /&gt;
    &lt;/bean&gt;
    &lt;jaxws:endpoint id="dataTransServiceHttp" implementor="#dataTransServiceImplHttp" address="http://0.0.0.0:#{@cfg.params['http.port']}/dataTransService" publish="true" /&gt;
    &lt;jaxws:endpoint id="dataTransServiceHttps" implementor="#dataTransServiceImplHttps" address="https://0.0.0.0:#{@cfg.params['https.port']}/dataTransService" publish="true" /&gt;

    &lt;httpj:engine-factory bus="cxf"&gt;

        &lt;httpj:identifiedThreadingParameters id="threadPool"&gt;
            &lt;httpj:threadingParameters minThreads="#{@cfg.params['http.minThreads']}" maxThreads="#{@cfg.params['http.maxThreads']}" /&gt;
        &lt;/httpj:identifiedThreadingParameters&gt;

        &lt;httpj:engine port="#{@cfg.params['http.port']}"&gt;
            &lt;httpj:threadingParametersRef id="threadPool" /&gt;
            &lt;httpj:connector&gt;
                &lt;bean class="org.eclipse.jetty.server.bio.SocketConnector"&gt;
                    &lt;property name="port" value="#{@cfg.params['http.port']}" /&gt;
                &lt;/bean&gt;
            &lt;/httpj:connector&gt;
        &lt;/httpj:engine&gt;
        &lt;httpj:engine port="#{@cfg.params['https.port']}"&gt;
            &lt;httpj:tlsServerParameters&gt;
                &lt;sec:keyManagers keyPassword="#{@cfg.params['https.keyManagers.keyPassword']}"&gt;
                    &lt;sec:keyStore type="#{@cfg.params['https.keyManagers.keyStore.type']}" url="#{@cfg.params['https.keyManagers.keyStore.url']}" password="#{@cfg.params['https.keyManagers.keyStore.password']}" /&gt;
                &lt;/sec:keyManagers&gt;
                &lt;sec:trustManagers&gt;
                    &lt;sec:keyStore type="#{@cfg.params['https.trustManagers.keyStore.type']}" url="#{@cfg.params['https.trustManagers.keyStore.url']}" password="#{@cfg.params['https.trustManagers.keyStore.password']}" /&gt;
                &lt;/sec:trustManagers&gt;
                &lt;sec:cipherSuitesFilter&gt;
                    &lt;sec:include&gt;.*_EXPORT_.*&lt;/sec:include&gt;
                    &lt;sec:include&gt;.*_EXPORT1024_.*&lt;/sec:include&gt;
                    &lt;sec:include&gt;.*_WITH_DES_.*&lt;/sec:include&gt;
                    &lt;sec:include&gt;.*_WITH_AES_.*&lt;/sec:include&gt;
                    &lt;sec:include&gt;.*_WITH_NULL_.*&lt;/sec:include&gt;
                    &lt;sec:exclude&gt;.*_DH_anon_.*&lt;/sec:exclude&gt;
                &lt;/sec:cipherSuitesFilter&gt;
                &lt;sec:clientAuthentication want="true" required="true" /&gt;
            &lt;/httpj:tlsServerParameters&gt;
            &lt;httpj:threadingParametersRef id="threadPool" /&gt;
            &lt;httpj:connector&gt;
                &lt;bean class="org.eclipse.jetty.server.ssl.SslSocketConnector"&gt;
                    &lt;property name="port" value="#{@cfg.params['https.port']}" /&gt;
                    &lt;property name="password" value="#{@cfg.params['https.keyManagers.keyStore.password']}" /&gt;
                    &lt;property name="trustPassword" value="#{@cfg.params['https.trustManagers.keyStore.password']}" /&gt;
                    &lt;property name="keyPassword" value="#{@cfg.params['https.keyManagers.keyPassword']}" /&gt;
                    &lt;property name="protocol" value="TLS" /&gt;
                    &lt;property name="keystore" value="#{@cfg.params['https.keyManagers.keyStore.url']}" /&gt;
                    &lt;property name="keystoreType" value="#{@cfg.params['https.keyManagers.keyStore.type']}" /&gt;
                    &lt;property name="truststore" value="#{@cfg.params['https.trustManagers.keyStore.url']}" /&gt;
                    &lt;property name="truststoreType" value="#{@cfg.params['https.trustManagers.keyStore.type']}" /&gt;
                    &lt;property name="wantClientAuth" value="false" /&gt;
                    &lt;property name="needClientAuth" value="false" /&gt;
                &lt;/bean&gt;
            &lt;/httpj:connector&gt;
        &lt;/httpj:engine&gt;
    &lt;/httpj:engine-factory&gt;
&lt;/beans&gt;</pre>
<div class="blog_h3"><span class="graybg">使用JDK的keytool密钥对</span></div>
<p>使用JDK自带的keytool命令可以生成JKS（Java KeyStore）文件，作为数字证书库使用。在配置SSL时，一般需要用到两个JKS：信任库、证书库（对应上节配置文件中的truststore、keystore）。<br /> 下面是生成证书库的示例：</p>
<pre class="crayon-plain-tag">keytool -genkey -alias platform -keyalg RSA -keypass key_password -storepass store_password -dname "CN=DataTrans Platform, OU=, O=Gmem.cc, L=Nan Jing, ST=Jiang Su, C=CN" -validity 3650 -keystore platform.jks</pre>
</div><p>The post <a rel="nofollow" href="https://blog.gmem.cc/spring-confg-cxf-with-ssl">Spring配置：启用Jetty SSL传输的CXF</a> appeared first on <a rel="nofollow" href="https://blog.gmem.cc">绿色记忆</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.gmem.cc/spring-confg-cxf-with-ssl/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
