[ 
https://issues.apache.org/jira/browse/JAMES-3639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17412920#comment-17412920
 ] 

Benoit Tellier commented on JAMES-3639:
---------------------------------------

{code:java}
<smtpservers>
    <smtpserver enabled="true">
        <jmxName>smtpserver-global</jmxName>
        <bind>0.0.0.0:25</bind>
        <tls socketTLS="false" startTLS="false">
            <privateKey>file://conf/privatekey.pem</privateKey>
            <certificates>file://conf/fullchain.pem</certificates>
        </tls>
        <authRequired>false</authRequired>
        <smtpGreeting>Apache JAMES awesome SMTP Server</smtpGreeting>
        <handlerchain>
            <handler 
class="org.apache.james.smtpserver.fastfail.ValidRcptHandler"/>
            <handler class="org.apache.james.smtpserver.CoreCmdHandlerLoader"/>
        </handlerchain>
    </smtpserver>
    <smtpserver enabled="true">
        <jmxName>smtpserver-TLS</jmxName>
        <bind>0.0.0.0:465</bind>
        <tls socketTLS="true" startTLS="false">
            <privateKey>file://conf/privatekey.pem</privateKey>
            <certificates>file://conf/fullchain.pem</certificates>
        </tls>
        <authRequired>true</authRequired>
        <verifyIdentity>false</verifyIdentity>
        <smtpGreeting>Apache JAMES awesome SMTP Server</smtpGreeting>
        <handlerchain>
            <handler 
class="org.apache.james.smtpserver.fastfail.ValidRcptHandler"/>
            <handler class="org.apache.james.smtpserver.CoreCmdHandlerLoader"/>
        </handlerchain>
    </smtpserver>
    <smtpserver enabled="true">
        <jmxName>smtpserver-authenticated</jmxName>
        <bind>0.0.0.0:587</bind>
        <tls socketTLS="false" startTLS="true">
            <privateKey>file://conf/privatekey.pem</privateKey>
            <certificates>file://conf/fullchain.pem</certificates>
        </tls>
        <authRequired>true</authRequired>
        <authorizedAddresses>127.0.0.0/8</authorizedAddresses>
        <smtpGreeting>Apache JAMES awesome SMTP Server</smtpGreeting>
        <handlerchain>
            <handler 
class="org.apache.james.smtpserver.fastfail.ValidRcptHandler"/>
            <handler class="org.apache.james.smtpserver.CoreCmdHandlerLoader"/>
        </handlerchain>
    </smtpserver>
</smtpservers>
{code}

file://conf/privatekey.pem and file://conf/fullchain.pem are let's encrypt 
generated.

James starts:

{code:java}
02:42:39.941 [INFO ] o.a.j.w.WebAdminServer - Web admin server started
02:42:40.129 [INFO ] o.a.j.m.s.JMXServer - JMX server started
02:42:40.141 [INFO ] o.a.j.GuiceJamesServer - JAMES server started
{code}

Here is the open SSL result:

{code:java}
$ openssl s_client -connect 172.17.0.3:465 
CONNECTED(00000003)
Can't use SSL_get_servername
depth=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = R3
verify return:1
depth=0 CN = ldap.linagora.com.vn
verify return:1
---
Certificate chain
 0 s:CN = ldap.linagora.com.vn
   i:C = US, O = Let's Encrypt, CN = R3
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
 2 s:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFLjCCBBagAwIBAgISBH/pbsXVwSA1Q+JzPUwaLVkMMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMTA5MDcwNTUwNTNaFw0yMTEyMDYwNTUwNTJaMB8xHTAbBgNVBAMT
FGxkYXAubGluYWdvcmEuY29tLnZuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAwE43JmzObxoO/+GhNG5gmuiZtt7BRaEf1S4InitLAeTTj+DRnY3mki6u
VOPTDyzwK4SPE+ugqcunv+t/YmHqvh9lRUd3mBHQzCmPMu1lA/ZDUJxdIrGAuN9F
UPTQC0GT+P8uKj/Xf+15AVbf+PiCY2YDoBz8CGH2EQ6TuxCtuJWgSTRpSaOwdOxs
WyAYRnm7iKhVm5YGMOYsRI9dUiG7On0lp51259QmlnVf8E7lgzSHyVdjuq5CcuTB
lQnuSgkp2tKgjUEY1rht45SYsArONyOyRDjjYS8zOUDPlB6x71W/hFYrDXoL1qS8
G/MQXqss1XypCy411gDK9BucDs0ahQIDAQABo4ICTzCCAkswDgYDVR0PAQH/BAQD
AgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAA
MB0GA1UdDgQWBBRpO2xwQqdv0Mf9qUvI3Ae/GU4HkjAfBgNVHSMEGDAWgBQULrMX
t1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0
dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVu
Y3Iub3JnLzAfBgNVHREEGDAWghRsZGFwLmxpbmFnb3JhLmNvbS52bjBMBgNVHSAE
RTBDMAgGBmeBDAECATA3BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRw
Oi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2
APZclC/RdzAiFFQYCDCUVo7jTRMZM7/fDC8gC8xO8WTjAAABe78GHQkAAAQDAEcw
RQIhALdy7373aaOPiXYu7EURlKIgrIiiFXe9L1vuSsQczAN9AiBllXgGHQE4OjzW
7Ys15UygsfXZ/YSNt/79FVJta52Z7QB2AG9Tdqwx8DEZ2JkApFEV/3cVHBHZAsEA
KQaNsgiaN9kTAAABe78GHUAAAAQDAEcwRQIgVdfQKWHXD0cfeR6xA4IAhUW3vMOz
8iBqncTuWp5cBXUCIQD0vOfX00YzAnsS16tl6NJxgypvjAT8dMTDYUH/KZ920zAN
BgkqhkiG9w0BAQsFAAOCAQEAuGREYnWjg7pDVPbejenQAwsH0v1mLDzkabbmjUv+
59TL/3r4cPrW0livvP43kHdV4ozDIqjGHEF+ve4Hm6UI2rsn0GDDqPi2FhjGhxg5
RM9sDt4JNQszADFaWBfYIOOXqSCGW/lbW7lDkO+0sT3E1o/taglUy5PLdx6Of1Kc
Yk3AurjTZcdQoBiiRXIbfom8TnPCUsgzVUJOBIdjF46YAYZgmpjp+I+m1TklotgG
21bfVEw16Q5TMS08dqk9U9q4fgaFgoqciwAc7LkjoEBmIVMgi8gzSYjlIDP6RzqM
noLcXrc//kvlzcrX1oER+J+J+4NhzohfGHzHXJaFBgFnMA==
-----END CERTIFICATE-----
subject=CN = ldap.linagora.com.vn

issuer=C = US, O = Let's Encrypt, CN = R3

---
No client certificate CA names sent
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 4558 bytes and written 363 bytes
Verification: OK
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
---
Post-Handshake New Session Ticket arrived:
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : TLS_AES_256_GCM_SHA384
    Session-ID: 7CA318DE5D275B25246950185C0AB353863F2EDB5339EDDC1B031A7426F15057
    Session-ID-ctx: 
    Resumption PSK: 
D26A1CAFE237EE7A6B80136A9A950C2243133D7AC76DDE59DEB2DEE85E74F27735BBDD0B2AC19F6B272BC4F2CD2FB676
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 86400 (seconds)
    TLS session ticket:
    0000 - 9b 50 74 48 fb a0 45 7a-0d ba f6 3c f1 e9 83 74   .PtH..Ez...<...t
    0010 - 1d 9c be 9a 1e a8 58 4b-a0 5c c0 86 0b 6d b6 ad   ......XK.\...m..

    Start Time: 1631241786
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
220 Apache JAMES awesome SMTP Server
....
{code}





> Allow to configure SSL from PEM keys (without a keystore)
> ---------------------------------------------------------
>
>                 Key: JAMES-3639
>                 URL: https://issues.apache.org/jira/browse/JAMES-3639
>             Project: James Server
>          Issue Type: Improvement
>          Components: IMAPServer, JMAP, POP3Server, SMTPServer
>            Reporter: Benoit Tellier
>            Assignee: Antoine Duprat
>            Priority: Major
>          Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> This gives the opportunity to inter-operate directly with OpenSSL formats and 
> avoids some potentially tricky configuration steps (importing the keys in a 
> keystore).
> Read related thread on the mailing list: 
> https://www.mail-archive.com/[email protected]/msg70772.html
> How this looks like:
> {code:java}
> <tls socketTLS="true" startTLS="false">
>   <privateKey>file://conf/private.nopass.key</privateKey>
>   <certificates>file://conf/certs.self-signed.csr</certificates>
> </tls>
> {code}
> Tested manually with self signed certificates:
> {code:java}
> # Generating your private key
> openssl genrsa -des3 -out private.key 2048
> # Creating your certificates
> openssl req -new -key private.key -out certs.csr
> # Signing the certificate yourself
> openssl x509 -req -days 365 -in certs.csr -signkey private.key -out 
> certs.self-signed.csr
> # Removing the password from the private key
> # Not necessary if you supply the secret in the configuration
> openssl rsa -in private.key -out private.nopass.key
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to