How? I can think of 3 possibilities.
Compromised keys allowing man in the middle attacks (mitm), quite possible for some sites, especially American ones, hard to do if I generate my own key.
Weak encryption algorithms, most have been vetted by multiple outsiders and currently almost impossible to break and/or brute force with the one or two questionable ones not much used. In the past they forced most of the world to use weaker quality encryption but it has been a long time since browsers were split into domestic and the rest of the world. IIRC Netscape 2.2 was the last OS/2 browser that was split into secure and less secure. Problem with weak encryption is other intelligence agencies are just as capable of using the flaws.
Bugs such as the heartbeat vulnerability, also known as zero day exploits. Any the NSA are using may well be being used by other intelligence agencies and crooks and the longer they exist, the more chance that others will find them, especially with an open source library such as OpenSSL. Of course it is also possible for someone to distributed buggy versions so if you don't build from trusted source you might have a flaw that most others don't. eg Paul could be a secret agent (or super crook) and his build has a vulnerability that he secretly added so trust comes into it again but he does make his toolchain available so someone else can download the source, build it the same way and compare binaries and this does happen with popular open source software.