Does your piston even need o-rings? [They seem to complicate things a lot] How much force does it take to push the piston. There will probably be enough force to push it but if it is difficult to move more stress is going to be put on the parts of your cannon.
I will describe my piston because it doesn't have o-rings but makes a seal when the pressure is releved behind it and it is much easier to construct. First it is a 3" pvc SCH40 coupler with two 1/2" 3" pvc rings cemented 1/16" from the ends of the coupler. The seal material is presumably neoprene rubber from a 3" quick connect cap [like the one here
http://www.home-improvement-center.com/ ... k-cap.html ] and is supported by a 1/32" steel disk. The quick cap was cut so that the sides were cut flush with the base, leaving a 3-15/16" rubber circle. As seen in the picture the cap has a spherical indent in the end, this is oriented so that the outside end of the cap is facing the steel disk and creates a blister looking obtrusion. A 1/4" bolt and washers are placed through the assembly and cause the blister to be flattened. The outer edges of the rubber disk become cupped and when the pressure on the face of the piston is greater than behind [during firing] the cupped rubber is pushed against the inside of the pipe and creates a seal. When charging the chamber the piston also seals and is pushed onto the barrel until the pressure behind the piston is great enough to break the seal with the chamber walls.