Re: Unable to run SSL on Mathopd with the patch given in your site.

Mr Allwyn Fernandes <[email protected]> Tue, 23 Sep 2008 22:33:05 +1000
Newsgroups gmane.network.mathopd
Organization Stobor Pty Ltd
Message-ID <[email protected]>
--Boundary-00=_BIO2IVBKBvlW1aX
Content-Type: text/plain;
  charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi Vaishnavi,

On Tue, 23 Sep 2008 02:24:53 pm VAISHNAVI Y wrote:
> Actually I wanted Mathopd with IPv6 and SSL Support. So I am using
> mathopd-1.6b9 and applied your patch on this.

Really? The patch on my website doesn't cleanly apply to 1.6p9... There are a 
few changes which went into 1.6 which would break if you simply applied the 
patch as given - I didn't think it would even compile...  Did you manually 
apply the missing hunks? If so, can you please send me a diff between your 
version and the base 1.6p9 release?

I've got a trivially tested 1.6 patch I just put together, I've attached it 
here. Please let me know how it goes for you. (I ran it with your 
mathopd-ssl.conf and certificate/key pair and it worked on Linux 2.6.25 with 
OpenSSL 0.9.8g)

> 1. mathopd-ssl-debug.tar.gz - this contains the configuration file I have
> used, the certifcate file, the key file, the mathopd errors and log files.

Hmm; the logs suggest that the connection never completed... What client were 
you using to access the server? (I seem to recall this happening once a while 
back, but I haven't seen it for a while, so I'm not sure what it was a 
symptom of...)

If my new patch is still causing trouble, I'll add some more debugging and 
check it out more.

Please let me know how you go with the new patch.

Cheers,

Allwyn.

On Tue, 23 Sep 2008 02:24:53 pm VAISHNAVI Y wrote:
> Thanks for your reply Mr.Allwyn.
>
> Actually I wanted Mathopd with IPv6 and SSL Support. So I am using
> mathopd-1.6b9 and applied your patch on this. I am using OpenSSL. I tried
> on both Ubuntu and Redhat Linux Distro. The attached files are for what was
> tested on Linux  2.4.20-8. Currently I am accesing IPv4 machine only.
>
> I tried first by generating all the required parameters, that is the
> Certificate file, Key file, CRL File, DH Params file. Then tried only using
> Certificate file and Key File (Since only these two are the mandatory
> fields)
>
> I am accessing html and php pages (But I was unable to get the html pages
> itself).
>
> The attachments are as follows:
>
> 1. mathopd-ssl-debug.tar.gz - this contains the configuration file I have
> used, the certifcate file, the key file, the mathopd errors and log files.
>
> 2. 1.pcap is the Packet capture file I captured. If this file does not open
> pls find the same file renamed with a .txt extension attached. (Client
> machine IP: 192.168.10.135 and Mathopd Server IP: 192.168.10.174)
>
> 3. ssl-mathhopd1.debug file.- This the debug file generated by the Packet
> Capturing Tool.
>
> I am using Wireshark Version 0.99.6a
>
> The Alert Protocol message as seen in the Packet capture is as follows:
>
> *-Secure Socket Layer
>         -TLSv1 Record Layer: Alert (Level: Warning, Description: Close
> Notify)
>                    Content Type: Alert (21)
>                    Version: TLS 1.0 (0x0301)
>                    Length: 18
>
>       -Alert Message
>                  Level: Warning (1)
>                  Description: Close Notify (0)*
>
> Please let me know if you require any more info.
>
> Awaiting your reply.
>
> Thanks and Regards,
> Vaishnavi.
>
>
>
>
>
>
> On Mon, Sep 22, 2008 at 8:25 PM, Mr Allwyn Fernandes <
>
> [email protected]> wrote:
> > Hi Vaishnavi,
> >
> > On Mon, 22 Sep 2008 09:54:11 pm you wrote:
> > >    I am using the patch posted in your site
> > > http://opensource.stobor.net/mathopd/ for the SSL Support on Mathopd.
> >
> > Thanks for testing this patch!
> >
> > Can you please supply some more details about how you're using the patch?
> > Are
> > you using OpenSSL or GnuTLS? What version? Which version of Mathopd are
> > you using? Also, what operating system are you testing this on - which
> > Linux distro or Unix flavour?
> >
> > > I generated the certicate file in *pem format *and the key file in the
> >
> > *pem
> >
> > > format *using the openssl  commands.
> > >
> > > The attached file contains the  various commands I have used.
> >
> > Yep - those are the right commands and formats.
> >
> > Alternately, instead of creating a CA certificate and signing a server
> > certificate, you could also simply create a self-signed server
> > certificate and use that instead...
> >
> > > I am unable to use HTTPS on the port i have specified in my
> > > configuration file using mathopd.
> >
> > What data are you accessing, static html or cgis? What program are you
> > using
> > to access the server?
> >
> > > When i capture the packets, the Handshake is sucessfull. But I got an
> > > SSL Alert message with code 21. And then there is no data transfer. So
> > > https fails.
> >
> > Can you please supply me with the full alert text you're seeing? Are you
> > seeing this error in the Mathopd log, or the packet capture? If you're
> > okay with it, can you please send me both?
> >
> > Can you also please supply the Mathopd configuration file you're using?
> >
> > (I can receive large files at this email address, or you can upload them
> > to ftp://stobor.net/incoming/mathopd/ if that's easier for you - that's a
> > secure
> > server and no-one but myself can access files uploaded there...)
> >
> > > Can you please let me know if there is anything wrong in what I am
> > > doing. And help me make mathopd work with SSL.
> >
> > So far it looks like you're doing things right, so there might be more to
> > be
> > done to make the patch better. If you can supply more details, I'll be
> > happy
> > to help make this work.
> >
> > I'm not sure if this is something confidential, but if you're comfortable
> > with
> > discussing this in public, can we please continue the discussion on the
> > Mathopd mailing list? Other people might have insights, and others might
> > be interested in your results. (If it's something you'd rather not
> > discuss in public, that's fine, just let me know.)
> >
> > Cheers,
> >
> > Allwyn.

-- 
Allwyn Fernandes
Director
Stobor Pty Ltd

Mobile: + 61 430 436 758
LinkedIn: http://www.linkedin.com/in/AllwynFernandes

--Boundary-00=_BIO2IVBKBvlW1aX
Content-Type: application/x-gzip;
  name="tls.1.6p9.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="tls.1.6p9.diff.gz"

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
/wNCxeksV4EAAA==

--Boundary-00=_BIO2IVBKBvlW1aX--